gtk3/0001-widget-Allow-invisible-toplevels-to-do-sizing-operat.patch

49 lines
1.6 KiB
Diff
Raw Normal View History

From 154204e89136f338a3b0cbd91ddaebc09e4bd8e3 Mon Sep 17 00:00:00 2001
From: Benjamin Otte <otte@redhat.com>
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