diff options
author | Ted Gould <ted@canonical.com> | 2009-06-26 11:08:06 -0500 |
---|---|---|
committer | Ted Gould <ted@canonical.com> | 2009-06-26 11:08:06 -0500 |
commit | ceacc52b9ce52feb4e3b12cbfd802f38c65a8b4a (patch) | |
tree | c1b84c13c50b94cb9eb4d9d778b983c4b5ba6661 /libdbusmenu-glib | |
parent | caee558d288fd9d0be0c107074cfd2b102f55fe8 (diff) | |
download | libdbusmenu-ceacc52b9ce52feb4e3b12cbfd802f38c65a8b4a.tar.gz libdbusmenu-ceacc52b9ce52feb4e3b12cbfd802f38c65a8b4a.tar.bz2 libdbusmenu-ceacc52b9ce52feb4e3b12cbfd802f38c65a8b4a.zip |
Flipping arround the original update of the layout to be after building the proxies, not something driven by new. Also ensuring that the callback pointer is reset when we're in it so that it doesn't get called recursively.
Diffstat (limited to 'libdbusmenu-glib')
-rw-r--r-- | libdbusmenu-glib/client.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/libdbusmenu-glib/client.c b/libdbusmenu-glib/client.c index 5c429c8..4308d58 100644 --- a/libdbusmenu-glib/client.c +++ b/libdbusmenu-glib/client.c @@ -460,6 +460,8 @@ build_proxies (DbusmenuClient * client) dbus_g_proxy_add_signal(priv->menuproxy, "IdUpdate", G_TYPE_UINT, G_TYPE_INVALID); dbus_g_proxy_connect_signal(priv->menuproxy, "IdUpdate", G_CALLBACK(id_update), client, NULL); + update_layout(client); + return; } @@ -615,9 +617,9 @@ update_layout_cb (DBusGProxy * proxy, DBusGProxyCall * call, void * data) GError * error = NULL; GValue value = {0}; + priv->layoutcall = NULL; if (!dbus_g_proxy_end_call(proxy, call, &error, G_TYPE_VALUE, &value, G_TYPE_INVALID)) { g_warning("Getting layout failed on client %s object %s: %s", priv->dbus_name, priv->dbus_object, error->message); - priv->layoutcall = NULL; g_error_free(error); return; } @@ -626,7 +628,6 @@ update_layout_cb (DBusGProxy * proxy, DBusGProxyCall * call, void * data) /* g_debug("Got layout string: %s", xml); */ parse_layout(client, xml); - priv->layoutcall = NULL; /* g_debug("Root is now: 0x%X", (unsigned int)priv->root); */ g_signal_emit(G_OBJECT(client), signals[LAYOUT_UPDATED], 0, TRUE); @@ -681,7 +682,6 @@ dbusmenu_client_new (const gchar * name, const gchar * object) DBUSMENU_CLIENT_PROP_DBUS_NAME, name, DBUSMENU_CLIENT_PROP_DBUS_OBJECT, object, NULL); - update_layout(self); return self; } |