aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTed Gould <ted@canonical.com>2009-06-26 11:08:06 -0500
committerTed Gould <ted@canonical.com>2009-06-26 11:08:06 -0500
commitceacc52b9ce52feb4e3b12cbfd802f38c65a8b4a (patch)
treec1b84c13c50b94cb9eb4d9d778b983c4b5ba6661
parentcaee558d288fd9d0be0c107074cfd2b102f55fe8 (diff)
downloadlibdbusmenu-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.
-rw-r--r--libdbusmenu-glib/client.c6
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;
}