summaryrefslogtreecommitdiff
path: root/gtk/gtkbbox.c
diff options
context:
space:
mode:
authorMichael Natterer <mitch@gimp.org>2010-10-31 20:16:19 +0100
committerTristan Van Berkom <tristan.van.berkom@gmail.com>2010-11-02 12:04:36 +0900
commitca6398a6490be730cae1d212a81262fe799b4057 (patch)
tree39aceb5a3c882139dd2cba1f27739060a72323ed /gtk/gtkbbox.c
parent8dd7023b520482ac5126253c4d46823189b65846 (diff)
downloadgtk+-ca6398a6490be730cae1d212a81262fe799b4057.tar.gz
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.
Diffstat (limited to 'gtk/gtkbbox.c')
-rw-r--r--gtk/gtkbbox.c40
1 files changed, 17 insertions, 23 deletions
diff --git a/gtk/gtkbbox.c b/gtk/gtkbbox.c
index 045a3a2288..ad31d3f779 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;