diff options
author | Ted Gould <ted@gould.cx> | 2010-06-07 23:00:17 -0500 |
---|---|---|
committer | Ted Gould <ted@gould.cx> | 2010-06-07 23:00:17 -0500 |
commit | afdb5eaa19226057d1e3cb261a5bb4eaed1e6af3 (patch) | |
tree | 2130795cb670b3da7ff128c3177893302b1ccea9 | |
parent | 7c4a76f26e59199bd0a7cc87a3618bef8045dc51 (diff) | |
download | libdbusmenu-afdb5eaa19226057d1e3cb261a5bb4eaed1e6af3.tar.gz libdbusmenu-afdb5eaa19226057d1e3cb261a5bb4eaed1e6af3.tar.bz2 libdbusmenu-afdb5eaa19226057d1e3cb261a5bb4eaed1e6af3.zip |
When removing items we need to remove the submenu property.
-rw-r--r-- | libdbusmenu-glib/menuitem.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/libdbusmenu-glib/menuitem.c b/libdbusmenu-glib/menuitem.c index 02a88d0..623539c 100644 --- a/libdbusmenu-glib/menuitem.c +++ b/libdbusmenu-glib/menuitem.c @@ -517,6 +517,9 @@ dbusmenu_menuitem_take_children (DbusmenuMenuitem * mi) GList * children = priv->children; priv->children = NULL; g_list_foreach(children, take_children_signal, mi); + + dbusmenu_menuitem_property_remove(mi, DBUSMENU_MENUITEM_PROP_CHILD_DISPLAY); + return children; } @@ -691,6 +694,11 @@ dbusmenu_menuitem_child_delete (DbusmenuMenuitem * mi, DbusmenuMenuitem * child) #endif g_signal_emit(G_OBJECT(mi), signals[CHILD_REMOVED], 0, child, TRUE); g_object_unref(G_OBJECT(child)); + + if (priv->children == NULL) { + dbusmenu_menuitem_property_remove(mi, DBUSMENU_MENUITEM_PROP_CHILD_DISPLAY); + } + return TRUE; } |