← Back to team overview

ayatana-commits team mailing list archive

[Merge] lp:~bratsche/appmenu-gtk/deeper-reparenting into lp:appmenu-gtk

 

Cody Russell has proposed merging lp:~bratsche/appmenu-gtk/deeper-reparenting into lp:appmenu-gtk.

Requested reviews:
  Canonical Desktop Experience Team (canonical-dx-team)
Related bugs:
  #601094 There are no menus for baobab
  https://bugs.launchpad.net/bugs/601094

-- 
https://code.launchpad.net/~bratsche/appmenu-gtk/deeper-reparenting/+merge/29094
Your team ayatana-commits is subscribed to branch lp:appmenu-gtk.
=== modified file 'src/bridge.c'
--- src/bridge.c	2010-07-02 05:11:54 +0000
+++ src/bridge.c	2010-07-02 15:09:29 +0000
@@ -640,7 +640,7 @@
                                 recurse->context);
             }
 
-          // g_print ("%d: %s %s\n", recurse->count, G_OBJECT_TYPE_NAME (widget), get_menu_label_text (widget));
+          //  g_print ("%d: %s %s\n", recurse->count, G_OBJECT_TYPE_NAME (widget), get_menu_label_text (widget));
 
           if (GTK_IS_TEAROFF_MENU_ITEM (widget))
             {
@@ -856,7 +856,23 @@
       GtkWidget *toplevel = gtk_widget_get_toplevel (widget);
       AppMenuBridge *bridge = APP_MENU_BRIDGE (proxy);
 
-      rebuild (bridge, toplevel);
+      if (gtk_widget_get_parent (widget) == NULL)
+        return;
+
+      if (GTK_IS_WINDOW (toplevel))
+        {
+          g_signal_handlers_disconnect_by_func (widget,
+                                                G_CALLBACK (toplevel_notify_cb),
+                                                proxy);
+          rebuild (bridge, toplevel);
+        }
+      else
+        {
+          g_signal_connect (G_OBJECT (toplevel),
+                            "notify",
+                            G_CALLBACK (toplevel_notify_cb),
+                            proxy);
+        }
     }
 }
 


Follow ups