aboutsummaryrefslogtreecommitdiff
path: root/libdbusmenu-glib/menuitem.c
diff options
context:
space:
mode:
authorTed Gould <ted@gould.cx>2010-06-07 23:00:17 -0500
committerTed Gould <ted@gould.cx>2010-06-07 23:00:17 -0500
commitafdb5eaa19226057d1e3cb261a5bb4eaed1e6af3 (patch)
tree2130795cb670b3da7ff128c3177893302b1ccea9 /libdbusmenu-glib/menuitem.c
parent7c4a76f26e59199bd0a7cc87a3618bef8045dc51 (diff)
downloadlibdbusmenu-afdb5eaa19226057d1e3cb261a5bb4eaed1e6af3.tar.gz
libdbusmenu-afdb5eaa19226057d1e3cb261a5bb4eaed1e6af3.tar.bz2
libdbusmenu-afdb5eaa19226057d1e3cb261a5bb4eaed1e6af3.zip
When removing items we need to remove the submenu property.
Diffstat (limited to 'libdbusmenu-glib/menuitem.c')
-rw-r--r--libdbusmenu-glib/menuitem.c8
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;
}