]> Pileus Git - ~andy/gtk/commitdiff
Cleanup using gtk_menu_attach_to_widget. Also fixes leak, see #133411.
authorMorten Welinder <terra@gnome.org>
Fri, 6 Feb 2004 21:18:50 +0000 (21:18 +0000)
committerMorten Welinder <mortenw@src.gnome.org>
Fri, 6 Feb 2004 21:18:50 +0000 (21:18 +0000)
2004-02-06  Morten Welinder  <terra@gnome.org>

* gtk/gtktoolbar.c (show_menu): Cleanup using
gtk_menu_attach_to_widget.  Also fixes leak, see #133411.

ChangeLog
ChangeLog.pre-2-10
ChangeLog.pre-2-4
ChangeLog.pre-2-6
ChangeLog.pre-2-8
gtk/gtktoolbar.c

index a79fdd01becb264158582b7b033156cada7cc33d..4e7d64d2f7f090a0e20965425e6983a0fe5682c7 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2004-02-06  Morten Welinder  <terra@gnome.org>
+
+       * gtk/gtktoolbar.c (show_menu): Cleanup using
+       gtk_menu_attach_to_widget.  Also fixes leak, see #133411.
+
 2004-02-06  Federico Mena Quintero  <federico@ximian.com>
 
        * gtk/gtkfilechooserdefault.c (shortcuts_add_volumes): Free the
index a79fdd01becb264158582b7b033156cada7cc33d..4e7d64d2f7f090a0e20965425e6983a0fe5682c7 100644 (file)
@@ -1,3 +1,8 @@
+2004-02-06  Morten Welinder  <terra@gnome.org>
+
+       * gtk/gtktoolbar.c (show_menu): Cleanup using
+       gtk_menu_attach_to_widget.  Also fixes leak, see #133411.
+
 2004-02-06  Federico Mena Quintero  <federico@ximian.com>
 
        * gtk/gtkfilechooserdefault.c (shortcuts_add_volumes): Free the
index a79fdd01becb264158582b7b033156cada7cc33d..4e7d64d2f7f090a0e20965425e6983a0fe5682c7 100644 (file)
@@ -1,3 +1,8 @@
+2004-02-06  Morten Welinder  <terra@gnome.org>
+
+       * gtk/gtktoolbar.c (show_menu): Cleanup using
+       gtk_menu_attach_to_widget.  Also fixes leak, see #133411.
+
 2004-02-06  Federico Mena Quintero  <federico@ximian.com>
 
        * gtk/gtkfilechooserdefault.c (shortcuts_add_volumes): Free the
index a79fdd01becb264158582b7b033156cada7cc33d..4e7d64d2f7f090a0e20965425e6983a0fe5682c7 100644 (file)
@@ -1,3 +1,8 @@
+2004-02-06  Morten Welinder  <terra@gnome.org>
+
+       * gtk/gtktoolbar.c (show_menu): Cleanup using
+       gtk_menu_attach_to_widget.  Also fixes leak, see #133411.
+
 2004-02-06  Federico Mena Quintero  <federico@ximian.com>
 
        * gtk/gtkfilechooserdefault.c (shortcuts_add_volumes): Free the
index a79fdd01becb264158582b7b033156cada7cc33d..4e7d64d2f7f090a0e20965425e6983a0fe5682c7 100644 (file)
@@ -1,3 +1,8 @@
+2004-02-06  Morten Welinder  <terra@gnome.org>
+
+       * gtk/gtktoolbar.c (show_menu): Cleanup using
+       gtk_menu_attach_to_widget.  Also fixes leak, see #133411.
+
 2004-02-06  Federico Mena Quintero  <federico@ximian.com>
 
        * gtk/gtkfilechooserdefault.c (shortcuts_add_volumes): Free the
index 9a4a337c9e82581cca395a8eb6c05a6802fa946e..efc15367ebd94d5e2dd6c6e3962be03ee3763a4a 100644 (file)
@@ -2422,10 +2422,17 @@ menu_deactivated (GtkWidget  *menu,
                  GtkToolbar *toolbar)
 {
   GtkToolbarPrivate *priv = GTK_TOOLBAR_GET_PRIVATE (toolbar);
-  
   gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->arrow_button), FALSE);
 }
 
+static void
+menu_detached (GtkWidget  *toolbar,
+              GtkMenu    *menu)
+{
+  GtkToolbarPrivate *priv = GTK_TOOLBAR_GET_PRIVATE (toolbar);
+  priv->menu = NULL;
+}
+
 static void
 remove_item (GtkWidget *menu_item,
             gpointer   data)
@@ -2445,10 +2452,13 @@ show_menu (GtkToolbar     *toolbar,
       gtk_container_foreach (GTK_CONTAINER (priv->menu), remove_item, NULL);
       gtk_widget_destroy (GTK_WIDGET (priv->menu));
     }
-  
+
   priv->menu = GTK_MENU (gtk_menu_new ());
+  gtk_menu_attach_to_widget (priv->menu,
+                            GTK_WIDGET (toolbar),
+                            menu_detached);
   g_signal_connect (priv->menu, "deactivate", G_CALLBACK (menu_deactivated), toolbar);
-  
+
   for (list = priv->content; list != NULL; list = list->next)
     {
       ToolbarContent *content = list->data;
@@ -2466,8 +2476,6 @@ show_menu (GtkToolbar     *toolbar,
        }
     }
 
-  gtk_window_set_screen (GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (priv->menu))),
-                        gtk_widget_get_screen (GTK_WIDGET (toolbar)));
   gtk_widget_show_all (GTK_WIDGET (priv->menu));
 
   gtk_menu_popup (priv->menu, NULL, NULL,