[gtk+/wip/baedert/progressbar: 18/20] grid: Compute clip directly



commit d208628d8ebf2deee9c44b176f5cdd28c28bbde5
Author: Timm Bäder <mail baedert org>
Date:   Mon Apr 24 18:23:53 2017 +0200

    grid: Compute clip directly
    
    Instead of iterating over the children again in
    gtk_container_get_children_clip

 gtk/gtkgrid.c |   11 +++++++----
 1 files changed, 7 insertions(+), 4 deletions(-)
---
diff --git a/gtk/gtkgrid.c b/gtk/gtkgrid.c
index 7b794b1..e1a9446 100644
--- a/gtk/gtkgrid.c
+++ b/gtk/gtkgrid.c
@@ -1572,12 +1572,14 @@ allocate_child (GtkGridRequest *request,
 
 static void
 gtk_grid_request_allocate_children (GtkGridRequest      *request,
-                                    const GtkAllocation *allocation)
+                                    const GtkAllocation *allocation,
+                                    GtkAllocation       *out_clip)
 {
   GtkGridPrivate *priv = request->grid->priv;
   GList *list;
   GtkGridChild *child;
   GtkAllocation child_allocation;
+  GtkAllocation child_clip;
   gint x, y, width, height, baseline, ignore;
 
   for (list = priv->children; list; list = list->next)
@@ -1600,6 +1602,8 @@ gtk_grid_request_allocate_children (GtkGridRequest      *request,
                              - (child_allocation.x - allocation->x) - child_allocation.width;
 
       gtk_widget_size_allocate_with_baseline (child->widget, &child_allocation, baseline);
+      gtk_widget_get_clip (child->widget, &child_clip);
+      gdk_rectangle_union (out_clip, out_clip, &child_clip);
     }
 }
 
@@ -1662,9 +1666,8 @@ gtk_grid_allocate (GtkCssGadget        *gadget,
   gtk_grid_request_position (&request, 0);
   gtk_grid_request_position (&request, 1);
 
-  gtk_grid_request_allocate_children (&request, allocation);
-
-  gtk_container_get_children_clip (GTK_CONTAINER (grid), out_clip);
+  *out_clip = *allocation;
+  gtk_grid_request_allocate_children (&request, allocation, out_clip);
 }
 
 static gboolean


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