From 3efb996d90178b9c0d615c5237c0e39328479bd2 Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Tue, 8 Mar 2011 14:53:54 -0600 Subject: Removing the dbusmenu menuitem from the parent if it gets removed on the GTK side --- libdbusmenu-gtk/parser.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/libdbusmenu-gtk/parser.c b/libdbusmenu-gtk/parser.c index bde460d..b66aa46 100644 --- a/libdbusmenu-gtk/parser.c +++ b/libdbusmenu-gtk/parser.c @@ -884,8 +884,22 @@ child_added_cb (GtkContainer *menu, GtkWidget *widget, gpointer data) static void child_removed_cb (GtkContainer *menu, GtkWidget *widget, gpointer data) { + gpointer pmi = g_object_get_data(G_OBJECT(widget), CACHED_MENUITEM); + if (pmi == NULL) { + return; + } + DbusmenuMenuitem * child = DBUSMENU_MENUITEM(pmi); + pmi = g_object_get_data(G_OBJECT(menu), CACHED_MENUITEM); + if (pmi == NULL) { + return; + } + + DbusmenuMenuitem * parent = DBUSMENU_MENUITEM(pmi); + + dbusmenu_menuitem_child_delete(parent, child); + return; } static void -- cgit v1.2.3