From 85ab8ad00128fc095fdfb3d62142e58556ad5ee7 Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Wed, 16 Sep 2015 22:56:56 +0200 Subject: [PATCH] sizegroup: Don't invalidate over resize containers. Before this commit, a widget tree like this: Window AnyContainer (part of SizeGroup1) GtkClutterEmbed SomeWidget when calling gtk_widget_queue_resize(SomeWidget), would invalidate SizeGroup1, when it should have stopped at the GtkClutterEmbed (which is a RESIZE_IMMEDIATE child). --- gtk/gtksizegroup.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/gtk/gtksizegroup.c b/gtk/gtksizegroup.c index d6276a90f5..ef29358c96 100644 --- a/gtk/gtksizegroup.c +++ b/gtk/gtksizegroup.c @@ -237,7 +237,7 @@ queue_resize_on_widget (GtkWidget *widget, parent = widget; - while (parent) + do { if (widget == parent) real_queue_resize (widget); @@ -271,8 +271,14 @@ queue_resize_on_widget (GtkWidget *widget, } } +G_GNUC_BEGIN_IGNORE_DEPRECATIONS; + if (GTK_IS_RESIZE_CONTAINER (parent)) + break; +G_GNUC_END_IGNORE_DEPRECATIONS; + parent = _gtk_widget_get_parent (parent); } + while (parent); g_hash_table_destroy (widgets); g_hash_table_destroy (groups);