From 154204e89136f338a3b0cbd91ddaebc09e4bd8e3 Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Thu, 24 Jan 2013 14:25:27 +0100 Subject: [PATCH] widget: Allow invisible toplevels to do sizing operations This is a quickfix to keep things working. It turns out GtkWindow assumes it can do sizing operations while not being visible, or while in the process of show()ing/hide()ing itself. And commit b495ce54 broke these operations. Figuring this properly requires some more thinking and restructuring on my part, so for now we relax the requirement of visiblility enough for these things to start working again. --- gtk/gtksizerequest.c | 2 +- gtk/gtkwidget.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/gtk/gtksizerequest.c b/gtk/gtksizerequest.c index 4d54821..0ce86bd 100644 --- a/gtk/gtksizerequest.c +++ b/gtk/gtksizerequest.c @@ -268,7 +268,7 @@ _gtk_widget_compute_size_for_orientation (GtkWidget *widget, gpointer key; gint min_result = 0, nat_result = 0; - if (!gtk_widget_get_visible (widget)) + if (!gtk_widget_get_visible (widget) && !gtk_widget_is_toplevel (widget)) { if (minimum) *minimum = 0; diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c index ed584ea..585b4f8 100644 --- a/gtk/gtkwidget.c +++ b/gtk/gtkwidget.c @@ -4817,7 +4817,7 @@ gtk_widget_size_allocate (GtkWidget *widget, g_return_if_fail (GTK_IS_WIDGET (widget)); - if (!priv->visible) + if (!priv->visible && !gtk_widget_is_toplevel (widget)) return; gtk_widget_push_verify_invariants (widget); -- 1.8.1