From 9a1db40746b93f0485c3e62b1f28ab0ef378f6ff Mon Sep 17 00:00:00 2001 From: Owen Taylor Date: Fri, 24 Apr 1998 23:13:43 +0000 Subject: [PATCH] Removed the "check visibility after gtk_widget_unparent" bug in hopefully Fri Apr 24 19:07:32 1998 Owen Taylor * gtk/gtkfixed.c gtk/gtkpaned.c gtk/gtktable.c: Removed the "check visibility after gtk_widget_unparent" bug in hopefully the last three places. --- gtk/gtkfixed.c | 4 +++- gtk/gtkpaned.c | 8 +++++--- gtk/gtktable.c | 4 +++- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/gtk/gtkfixed.c b/gtk/gtkfixed.c index ace3558162..e598f687ab 100644 --- a/gtk/gtkfixed.c +++ b/gtk/gtkfixed.c @@ -437,13 +437,15 @@ gtk_fixed_remove (GtkContainer *container, if (child->widget == widget) { + gboolean was_visible = GTK_WIDGET_VISIBLE (widget); + gtk_widget_unparent (widget); fixed->children = g_list_remove_link (fixed->children, children); g_list_free (children); g_free (child); - if (GTK_WIDGET_VISIBLE (widget) && GTK_WIDGET_VISIBLE (container)) + if (was_visible && GTK_WIDGET_VISIBLE (container)) gtk_widget_queue_resize (GTK_WIDGET (container)); break; diff --git a/gtk/gtkpaned.c b/gtk/gtkpaned.c index 40f656b38b..9fbf23ef19 100644 --- a/gtk/gtkpaned.c +++ b/gtk/gtkpaned.c @@ -349,20 +349,22 @@ gtk_paned_remove (GtkContainer *container, GtkWidget *widget) { GtkPaned *paned; + gboolean was_visible; g_return_if_fail (container != NULL); g_return_if_fail (GTK_IS_PANED (container)); g_return_if_fail (widget != NULL); paned = GTK_PANED (container); - + was_visible = GTK_WIDGET_VISIBLE (widget); + if (paned->child1 == widget) { gtk_widget_unparent (widget); paned->child1 = NULL; - if (GTK_WIDGET_VISIBLE (widget) && GTK_WIDGET_VISIBLE (container)) + if (was_visible && GTK_WIDGET_VISIBLE (container)) gtk_widget_queue_resize (GTK_WIDGET (container)); } else if (paned->child2 == widget) @@ -371,7 +373,7 @@ gtk_paned_remove (GtkContainer *container, paned->child2 = NULL; - if (GTK_WIDGET_VISIBLE (widget) && GTK_WIDGET_VISIBLE (container)) + if (was_visible && GTK_WIDGET_VISIBLE (container)) gtk_widget_queue_resize (GTK_WIDGET (container)); } } diff --git a/gtk/gtktable.c b/gtk/gtktable.c index e58466d2b2..9140a6af55 100644 --- a/gtk/gtktable.c +++ b/gtk/gtktable.c @@ -570,12 +570,14 @@ gtk_table_remove (GtkContainer *container, if (child->widget == widget) { + gboolean was_visible = GTK_WIDGET_VISIBLE (widget); + gtk_widget_unparent (widget); table->children = g_list_remove (table->children, child); g_free (child); - if (GTK_WIDGET_VISIBLE (widget) && GTK_WIDGET_VISIBLE (container)) + if (was_visible && GTK_WIDGET_VISIBLE (container)) gtk_widget_queue_resize (GTK_WIDGET (container)); break; }