From d74feca09e34efe3f89013512731e315d88fc813 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Thu, 3 Mar 2005 06:40:53 +0000 Subject: Avoid warnings if gtk_widget_reparent() is called at unusual times. 2005-03-03 Matthias Clasen * gtk/gtkwidget.c (gtk_widget_reparent_subwindows): Avoid warnings if gtk_widget_reparent() is called at unusual times. (#168966, Christian Persch) --- gtk/gtkwidget.c | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) (limited to 'gtk') diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c index 3a4f76bd85..29ee934a9e 100644 --- a/gtk/gtkwidget.c +++ b/gtk/gtkwidget.c @@ -3730,21 +3730,27 @@ gtk_widget_reparent_subwindows (GtkWidget *widget, } else { - GdkWindow *parent = gdk_window_get_parent (widget->window); + GdkWindow *parent; + GList *tmp_list, *children; - GList *children = gdk_window_get_children (parent); - GList *tmp_list; - for (tmp_list = children; tmp_list; tmp_list = tmp_list->next) - { - GtkWidget *child; - GdkWindow *window = tmp_list->data; + parent = gdk_window_get_parent (widget->window); - gdk_window_get_user_data (window, (void **)&child); - if (child == widget) - gdk_window_reparent (window, new_window, 0, 0); + if (parent) + { + children = gdk_window_get_children (parent); + + for (tmp_list = children; tmp_list; tmp_list = tmp_list->next) + { + GtkWidget *child; + GdkWindow *window = tmp_list->data; + + gdk_window_get_user_data (window, (void **)&child); + if (child == widget) + gdk_window_reparent (window, new_window, 0, 0); + } + + g_list_free (children); } - - g_list_free (children); } } -- cgit v1.2.1