ayatana-commits team mailing list archive
-
ayatana-commits team
-
Mailing list archive
-
Message #01808
[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/29095
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:12:30 +0000
@@ -281,8 +281,10 @@
static void
app_menu_bridge_proxy_vanished (AppMenuBridge *bridge)
{
+ /*
if (bridge->priv->online)
g_print ("VANISH\n");
+ */
bridge->priv->online = FALSE;
@@ -292,7 +294,7 @@
static void
app_menu_bridge_proxy_appeared (AppMenuBridge *bridge)
{
- g_print ("APPEAR\n");
+ /* g_print ("APPEAR\n"); */
bridge->priv->online = TRUE;
@@ -418,14 +420,6 @@
if (context != NULL)
window = context->window;
- /*
- g_print ("VISIBLE: %p %s %s, window: %p %s %s, toplevel: %p %s %s\n",
- widget, G_OBJECT_TYPE_NAME (widget), get_menu_label_text (widget),
- window, G_OBJECT_TYPE_NAME (window), get_menu_label_text (window),
- toplevel, G_OBJECT_TYPE_NAME (toplevel), get_menu_label_text (toplevel)
- );
- */
-
if (toplevel == window)
{
rebuild (context->bridge, window);
@@ -490,8 +484,6 @@
gint mode = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (widget), "gtk-separator-mode"));
- // g_print ("mode == %d, previous_separator == %d\n", mode, previous_separator);
-
dbusmenu_menuitem_property_set_bool (mi,
DBUSMENU_MENUITEM_PROP_VISIBLE,
mode == SEPARATOR_MODE_SMART && !previous_separator);
@@ -640,8 +632,6 @@
recurse->context);
}
- // 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))
{
dbusmenu_menuitem_property_set_bool (recurse->stack[recurse->count],
@@ -856,7 +846,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);
+ }
}
}
@@ -892,12 +898,6 @@
bridge = APP_MENU_BRIDGE (proxy);
priv = bridge->priv;
- /*
- g_print ("INSERT (parent %s %p, child %s %p %s\n",
- G_OBJECT_TYPE_NAME (parent), parent,
- G_OBJECT_TYPE_NAME (child), child, get_menu_label_text (child));
- */
-
toplevel = gtk_widget_get_toplevel (parent);
if (GTK_IS_MENU_BAR (parent))
Follow ups