[gtk+] gtk: remove all border_width handling from the button box



commit d1a58b78bea1e4603ffca81670ab7b83c1e8ad2b
Author: Michael Natterer <mitch gimp org>
Date:   Sun Oct 31 20:16:19 2010 +0100

    gtk: remove all border_width handling from the button box
    
    and let GtkContainer do the job; fixes doubled border widths. GtkBox
    did already delegate border handling to Gtkcontainer, which interacted
    badly with a subclass that didn't.

 gtk/gtkbbox.c |   40 +++++++++++++++++-----------------------
 1 files changed, 17 insertions(+), 23 deletions(-)
---
diff --git a/gtk/gtkbbox.c b/gtk/gtkbbox.c
index 045a3a2..ad31d3f 100644
--- a/gtk/gtkbbox.c
+++ b/gtk/gtkbbox.c
@@ -142,6 +142,7 @@ gtk_button_box_class_init (GtkButtonBoxClass *class)
   container_class->remove = gtk_button_box_remove;
   container_class->set_child_property = gtk_button_box_set_child_property;
   container_class->get_child_property = gtk_button_box_get_child_property;
+  gtk_container_class_handle_border_width (container_class);
 
   /* FIXME we need to override the "spacing" property on GtkBox once
    * libgobject allows that.
@@ -551,7 +552,6 @@ gtk_button_box_size_request (GtkWidget      *widget,
   gint max_size;
   gint total_size;
   gint spacing;
-  guint border_width;
   GtkOrientation orientation;
   gint *widths;
   gint *heights;
@@ -622,10 +622,6 @@ gtk_button_box_size_request (GtkWidget      *widget,
       else
         requisition->width = max_size;
     }
-
-  border_width = gtk_container_get_border_width (GTK_CONTAINER (widget));
-  requisition->width += border_width * 2;
-  requisition->height += border_width * 2;
 }
 
 static void
@@ -689,7 +685,6 @@ gtk_button_box_size_allocate (GtkWidget     *widget,
   gint height = 0;
   gint childspacing = 0;
   gint spacing;
-  guint border_width;
   GtkOrientation orientation;
   gint ipad_x, ipad_y;
   gint *widths;
@@ -703,7 +698,6 @@ gtk_button_box_size_allocate (GtkWidget     *widget,
   bbox = GTK_BUTTON_BOX (widget);
   priv = bbox->priv;
 
-  border_width = gtk_container_get_border_width (GTK_CONTAINER (widget));
   orientation = gtk_orientable_get_orientation (GTK_ORIENTABLE (widget));
   spacing = gtk_box_get_spacing (GTK_BOX (widget));
 
@@ -747,9 +741,9 @@ gtk_button_box_size_allocate (GtkWidget     *widget,
   gtk_widget_set_allocation (widget, allocation);
 
   if (orientation == GTK_ORIENTATION_HORIZONTAL)
-    width = allocation->width - border_width*2;
+    width = allocation->width;
   else
-    height = allocation->height - border_width*2;
+    height = allocation->height;
 
   switch (priv->layout_style)
     {
@@ -758,13 +752,13 @@ gtk_button_box_size_allocate (GtkWidget     *widget,
         if (orientation == GTK_ORIENTATION_HORIZONTAL)
           {
             childspacing = (width - total_size) / (nvis_children + 1);
-            x = allocation->x + border_width + childspacing;
+            x = allocation->x + childspacing;
             secondary_x = x + primary_size + n_primaries * childspacing;
           }
         else
           {
             childspacing = (height - total_size) / (nvis_children + 1);
-            y = allocation->y + border_width + childspacing;
+            y = allocation->y + childspacing;
             secondary_y = y + primary_size + n_primaries * childspacing;
           }
 
@@ -777,7 +771,7 @@ gtk_button_box_size_allocate (GtkWidget     *widget,
             if (nvis_children >= 2)
               {
                 childspacing = (width - total_size) / (nvis_children - 1);
-                x = allocation->x + border_width;
+                x = allocation->x;
                 secondary_x = x + primary_size + n_primaries * childspacing;
               }
             else
@@ -793,7 +787,7 @@ gtk_button_box_size_allocate (GtkWidget     *widget,
             if (nvis_children >= 2)
               {
                 childspacing = (height - total_size) / (nvis_children - 1);
-                y = allocation->y + border_width;
+                y = allocation->y;
                 secondary_y = y + primary_size + n_primaries * childspacing;
               }
             else
@@ -812,16 +806,16 @@ gtk_button_box_size_allocate (GtkWidget     *widget,
         if (orientation == GTK_ORIENTATION_HORIZONTAL)
           {
             childspacing = spacing;
-            x = allocation->x + border_width;
+            x = allocation->x;
             secondary_x = allocation->x + allocation->width
-              - secondary_size - spacing * (n_secondaries - 1) - border_width;
+              - secondary_size - spacing * (n_secondaries - 1);
           }
         else
           {
             childspacing = spacing;
-            y = allocation->y + border_width;
+            y = allocation->y;
             secondary_y = allocation->y + allocation->height
-              - secondary_size - spacing * (n_secondaries - 1) - border_width;
+              - secondary_size - spacing * (n_secondaries - 1);
           }
 
         break;
@@ -832,15 +826,15 @@ gtk_button_box_size_allocate (GtkWidget     *widget,
           {
             childspacing = spacing;
             x = allocation->x + allocation->width
-              - primary_size - spacing * (n_primaries - 1) - border_width;
-            secondary_x = allocation->x + border_width;
+              - primary_size - spacing * (n_primaries - 1);
+            secondary_x = allocation->x;
           }
         else
           {
             childspacing = spacing;
             y = allocation->y + allocation->height
-              - primary_size - spacing * (n_primaries - 1) - border_width;
-            secondary_y = allocation->y + border_width;
+              - primary_size - spacing * (n_primaries - 1);
+            secondary_y = allocation->y;
           }
 
         break;
@@ -854,7 +848,7 @@ gtk_button_box_size_allocate (GtkWidget     *widget,
               (allocation->width
                - (primary_size + spacing * (n_primaries - 1))) / 2
               + (secondary_size + n_secondaries * spacing) / 2;
-            secondary_x = allocation->x + border_width;
+            secondary_x = allocation->x;
           }
         else
           {
@@ -863,7 +857,7 @@ gtk_button_box_size_allocate (GtkWidget     *widget,
               (allocation->height
                - (primary_size + spacing * (n_primaries - 1))) / 2
               + (secondary_size + n_secondaries * spacing) / 2;
-            secondary_y = allocation->y + border_width;
+            secondary_y = allocation->y;
           }
 
         break;



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