diff options
Diffstat (limited to 'libdbusmenu-glib/client.c')
-rw-r--r-- | libdbusmenu-glib/client.c | 7 |
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); } |