[gtk+] Prevent the destruction of the menu label on page removal



commit a957d4593e80f643c8de58c49542f69346a4a1fc
Author: Sjoerd Simons <sjoerd simons collabora co uk>
Date:   Mon Mar 22 14:11:05 2010 -0400

    Prevent the destruction of the menu label on page removal
    
    In certain cases the menu label of a notebook page will be reused after the
    page was removed from the notebook, for instance when a page is dragged from
    one notebook to another. For such cases make sure that the menu label isn't
    destroyed as part of destroying the menu item it was in.

 gtk/gtknotebook.c |   11 +++++++----
 1 files changed, 7 insertions(+), 4 deletions(-)
---
diff --git a/gtk/gtknotebook.c b/gtk/gtknotebook.c
index a7c1b3a..d038cc5 100644
--- a/gtk/gtknotebook.c
+++ b/gtk/gtknotebook.c
@@ -4656,17 +4656,20 @@ gtk_notebook_real_remove (GtkNotebook *notebook,
       if (destroying)
         gtk_widget_destroy (tab_label);
       g_object_unref (tab_label);
-    } 
+    }
 
   if (notebook->menu)
     {
-      gtk_container_remove (GTK_CONTAINER (notebook->menu), 
-			    page->menu_label->parent);
+      GtkWidget *parent = page->menu_label->parent;
+
+      gtk_notebook_menu_label_unparent (parent, NULL);
+      gtk_container_remove (GTK_CONTAINER (notebook->menu), parent);
+
       gtk_widget_queue_resize (notebook->menu);
     }
   if (!page->default_menu)
     g_object_unref (page->menu_label);
-  
+
   g_list_free (list);
 
   if (page->last_focus_child)



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]