GtkNotebook: fix crash when DnD tabs between windows

When doing DnD between windows the tab label is set as the child of
the DnD info window. If this is happening the remove method of
GtkNotebook should not unparent the tab label, since it's been already
unparented, belongs to the DnD window and will be properly destroyed
when the DnD is over.

https://bugzilla.gnome.org/show_bug.cgi?id=639875
This commit is contained in:
Xan Lopez 2011-12-30 21:09:21 +01:00
parent 912375ff38
commit eeb9de80e1

View File

@ -4958,7 +4958,10 @@ gtk_notebook_real_remove (GtkNotebook *notebook,
gtk_widget_unparent (page->child);
tab_label = page->tab_label;
if (tab_label)
/* Do not unparent the tab label if it's already in another
hierarchy. It means we are in the middle of a DnD and it's
already taken care of. */
if (tab_label && NOTEBOOK_IS_TAB_LABEL_PARENT (notebook, page))
{
g_object_ref (tab_label);
gtk_notebook_remove_tab_label (notebook, page);