[gtk+/wip/otte/queue-resize: 17/33] sizegroup: Refactor function



commit 9739d92f17770996f693bb53ea6043e11972f7da
Author: Benjamin Otte <otte redhat com>
Date:   Fri Sep 18 03:49:09 2015 +0200

    sizegroup: Refactor function
    
    Get rid of continues in loop. This allows doing more complex things in
    future commits.

 gtk/gtksizegroup.c |   53 ++++++++++++++++++++++-----------------------------
 1 files changed, 23 insertions(+), 30 deletions(-)
---
diff --git a/gtk/gtksizegroup.c b/gtk/gtksizegroup.c
index 091bcc9..d6276a9 100644
--- a/gtk/gtksizegroup.c
+++ b/gtk/gtksizegroup.c
@@ -239,43 +239,36 @@ queue_resize_on_widget (GtkWidget *widget,
 
   while (parent)
     {
-      GSList *widget_groups;
-      GHashTableIter iter;
-      gpointer current;
-      
       if (widget == parent)
         real_queue_resize (widget);
 
-      if (widget == parent && !check_siblings)
+      if (!check_siblings || _gtk_widget_get_sizegroups (parent) == NULL)
        {
-          parent = _gtk_widget_get_parent (parent);
-         continue;
+          check_siblings = TRUE;
        }
-
-      widget_groups = _gtk_widget_get_sizegroups (parent);
-      if (!widget_groups)
-       {
-          parent = _gtk_widget_get_parent (parent);
-         continue;
-       }
-
-      g_hash_table_remove_all (widgets);
-      g_hash_table_remove_all (groups);
-      add_widget_to_closure (widgets, groups, parent, -1);
-
-      g_hash_table_iter_init (&iter, widgets);
-      while (g_hash_table_iter_next (&iter, &current, NULL))
-       {
-         if (current == parent)
-           {
-              /* do nothing */
-           }
-         else if (current == widget)
+      else
+        {
+          GHashTableIter iter;
+          gpointer current;
+          
+          g_hash_table_remove_all (widgets);
+          g_hash_table_remove_all (groups);
+          add_widget_to_closure (widgets, groups, parent, -1);
+
+          g_hash_table_iter_init (&iter, widgets);
+          while (g_hash_table_iter_next (&iter, &current, NULL))
             {
-              g_warning ("A container and its child are part of this SizeGroup");
+              if (current == parent)
+                {
+                  /* do nothing */
+                }
+              else if (current == widget)
+                {
+                  g_warning ("A container and its child are part of this SizeGroup");
+                }
+              else
+                queue_resize_on_widget (current, FALSE);
             }
-         else
-           queue_resize_on_widget (current, FALSE);
        }
 
       parent = _gtk_widget_get_parent (parent);


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