From 2dfa855bc4d32ebdb2c2c0c53670094f06e79271 Mon Sep 17 00:00:00 2001 From: Tristan Van Berkom Date: Fri, 24 Dec 2010 12:35:27 +0900 Subject: [PATCH] Moved location of unsetting parent window inside gtk_widget_unparent(). Make sure to do this after the widget is unrealized. --- gtk/gtkwidget.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c index 20a268b8f9..0a5e5b859b 100644 --- a/gtk/gtkwidget.c +++ b/gtk/gtkwidget.c @@ -3714,12 +3714,6 @@ gtk_widget_unparent (GtkWidget *widget) g_object_freeze_notify (G_OBJECT (widget)); nqueue = g_object_notify_queue_freeze (G_OBJECT (widget), _gtk_widget_child_property_notify_context); - /* Need to unset the parent window early, this can result in - * an additional "hierarchy-changed" propagation if we are removing - * a parented GtkWindow from the hierarchy. - */ - gtk_widget_set_parent_window (widget, NULL); - toplevel = gtk_widget_get_toplevel (widget); if (gtk_widget_is_toplevel (toplevel)) _gtk_window_unset_focus_and_default (GTK_WINDOW (toplevel), widget); @@ -3755,6 +3749,12 @@ gtk_widget_unparent (GtkWidget *widget) gtk_widget_unrealize (widget); } + /* Need to unset the parent window early, this can result in + * an additional "hierarchy-changed" propagation if we are removing + * a parented GtkWindow from the hierarchy. + */ + gtk_widget_set_parent_window (widget, NULL); + /* Removing a widget from a container restores the child visible * flag to the default state, so it doesn't affect the child * in the next parent.