[gtk+/wip/otte/queue-resize: 16/32] sizegroup: Don't invalidate over resize containers.



commit 64390e6bbed4679b521bfe907307b092f6b65399
Author: Benjamin Otte <otte redhat com>
Date:   Wed Sep 16 22:56:56 2015 +0200

    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 files changed, 7 insertions(+), 1 deletions(-)
---
diff --git a/gtk/gtksizegroup.c b/gtk/gtksizegroup.c
index d6276a9..ef29358 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);


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]