From d53aa22ffd52ca5d78de74faf7b52832a2ac0663 Mon Sep 17 00:00:00 2001 From: Chris Coulson Date: Tue, 1 Mar 2011 14:45:06 +0000 Subject: Ensure we hook on to child-added signals from sub GtkMenuShell's. This broke in r220 in order to stop adding weak pointers on the root shell more than once. Now, we connect the signals when we create the DbusmenuMenuitem --- libdbusmenu-gtk/parser.c | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'libdbusmenu-gtk') diff --git a/libdbusmenu-gtk/parser.c b/libdbusmenu-gtk/parser.c index 97f7979..74da3cd 100644 --- a/libdbusmenu-gtk/parser.c +++ b/libdbusmenu-gtk/parser.c @@ -450,6 +450,17 @@ construct_dbusmenu_for_widget (GtkWidget * widget) } } + GtkWidget *submenu = gtk_menu_item_get_submenu(GTK_MENU_ITEM(widget)); + if (submenu) + { + pdata->shell = submenu; + g_signal_connect (G_OBJECT (submenu), + "child-added", + G_CALLBACK (child_added_cb), + thisitem); + g_object_add_weak_pointer(G_OBJECT(submenu), (gpointer*)&pdata->shell); + } + if (!g_object_get_data (G_OBJECT (widget), "gtk-empty-menu-item") && !GTK_IS_TEAROFF_MENU_ITEM (widget)) { visible = gtk_widget_get_visible (widget); -- cgit v1.2.3 From e319dcd8d8b2436b1f3bd5f8749b93c08f176251 Mon Sep 17 00:00:00 2001 From: Chris Coulson Date: Tue, 1 Mar 2011 15:16:30 +0000 Subject: Oops, fix a silly typo --- libdbusmenu-gtk/parser.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'libdbusmenu-gtk') diff --git a/libdbusmenu-gtk/parser.c b/libdbusmenu-gtk/parser.c index 74da3cd..e705dc7 100644 --- a/libdbusmenu-gtk/parser.c +++ b/libdbusmenu-gtk/parser.c @@ -457,7 +457,7 @@ construct_dbusmenu_for_widget (GtkWidget * widget) g_signal_connect (G_OBJECT (submenu), "child-added", G_CALLBACK (child_added_cb), - thisitem); + mi); g_object_add_weak_pointer(G_OBJECT(submenu), (gpointer*)&pdata->shell); } -- cgit v1.2.3