[gtk+] Handle empty button boxes gracefully



commit 10f0e991dad27cf7ec6467e5b35e70ffaf390e4a
Author: Matthias Clasen <mclasen redhat com>
Date:   Wed Nov 3 23:00:05 2010 -0400

    Handle empty button boxes gracefully
    
    https://bugzilla.gnome.org/show_bug.cgi?id=633915

 gtk/gtkbbox.c |   22 +++++++++++++++++-----
 1 files changed, 17 insertions(+), 5 deletions(-)
---
diff --git a/gtk/gtkbbox.c b/gtk/gtkbbox.c
index ad31d3f..5fdf837 100644
--- a/gtk/gtkbbox.c
+++ b/gtk/gtkbbox.c
@@ -774,13 +774,19 @@ gtk_button_box_size_allocate (GtkWidget     *widget,
                 x = allocation->x;
                 secondary_x = x + primary_size + n_primaries * childspacing;
               }
-            else
+            else if (nvis_children == 1)
               {
-                /* one or zero children, just center */
+                /* one child, just center */
                 childspacing = width;
                 x = secondary_x = allocation->x
                                   + (allocation->width - widths[0]) / 2;
               }
+            else
+              {
+                /* zero children, meh */
+                childspacing = width;
+                x = secondary_x = allocation->x + allocation->width / 2;
+              }
           }
         else
           {
@@ -790,12 +796,18 @@ gtk_button_box_size_allocate (GtkWidget     *widget,
                 y = allocation->y;
                 secondary_y = y + primary_size + n_primaries * childspacing;
               }
-            else
+            else if (nvis_children == 1)
               {
-                /* one or zero children, just center */
+                /* one child, just center */
                 childspacing = height;
                 y = secondary_y = allocation->y
-                        + (allocation->height - heights[0]) / 2;
+                                     + (allocation->height - heights[0]) / 2;
+              }
+            else
+              {
+                /* zero children, meh */
+                childspacing = height;
+                y = secondary_y = allocation->y + allocation->height / 2;
               }
           }
 



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