49 lines
1.6 KiB
Diff
49 lines
1.6 KiB
Diff
|
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
|
||
|
|