aboutsummaryrefslogtreecommitdiff
path: root/libdbusmenu-glib/client.c
diff options
context:
space:
mode:
authorTed Gould <ted@gould.cx>2010-02-09 08:49:53 -0600
committerTed Gould <ted@gould.cx>2010-02-09 08:49:53 -0600
commitb2842d4f8a12207a9b89c2adc1e5be5294cb9ac2 (patch)
tree66df17ab45ed025b706788468c0ec17e6f8b0fa5 /libdbusmenu-glib/client.c
parente8ac2fcb6cd946e90e873970976f6ae64354947c (diff)
parent5844f55951a17d5223c69ae456592eed34e207d9 (diff)
downloadlibdbusmenu-b2842d4f8a12207a9b89c2adc1e5be5294cb9ac2.tar.gz
libdbusmenu-b2842d4f8a12207a9b89c2adc1e5be5294cb9ac2.tar.bz2
libdbusmenu-b2842d4f8a12207a9b89c2adc1e5be5294cb9ac2.zip
* Upstream Merge
* Removing the ref to root and a setting of root
Diffstat (limited to 'libdbusmenu-glib/client.c')
-rw-r--r--libdbusmenu-glib/client.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/libdbusmenu-glib/client.c b/libdbusmenu-glib/client.c
index 2302110..5d7b5b1 100644
--- a/libdbusmenu-glib/client.c
+++ b/libdbusmenu-glib/client.c
@@ -774,15 +774,14 @@ parse_layout (DbusmenuClient * client, const gchar * layout)
g_debug("Client signaling root changed.");
#endif
- /* Switch the root around */
- g_object_ref(priv->root);
- dbusmenu_menuitem_set_root(priv->root, TRUE);
-
+ /* If they are different, and there was an old root we must
+ clean up that old root */
if (oldroot != NULL) {
dbusmenu_menuitem_set_root(oldroot, FALSE);
g_object_unref(oldroot);
}
+ /* If the root changed we can signal that */
g_signal_emit(G_OBJECT(client), signals[ROOT_CHANGED], 0, priv->root, TRUE);
}