The child is now aware of both the combobox and frame (if has-frame is

2008-16-03  Alberto Ruiz <aruiz@gnome.org>

	* gtl/gtkcombobox.c: (gtk_combo_box_size_allocate) The child is now aware of
	both the combobox and frame (if has-frame is set) thickness and border. (bug #521442)


svn path=/trunk/; revision=19886
This commit is contained in:
Alberto Ruiz 2008-03-16 01:37:12 +00:00 committed by Alberto Ruiz
parent 2b85ba9f64
commit ca5c68f160
2 changed files with 33 additions and 22 deletions

View File

@ -1,3 +1,8 @@
2008-16-03 Alberto Ruiz <aruiz@gnome.org>
* gtl/gtkcombobox.c: (gtk_combo_box_size_allocate) The child is now aware of
both the combobox and frame (if has-frame is set) thickness and border. (bug #521442)
2008-03-15 Andre Klapper <a9016009@gmx.de>
* configure.in: Added "si" to ALL_LINGUAS.

View File

@ -2284,6 +2284,10 @@ gtk_combo_box_size_allocate (GtkWidget *widget,
{
/* list mode */
/* Combobox thickness + border-width */
int delta_x = shadow_width + GTK_CONTAINER (widget)->border_width;
int delta_y = shadow_height + GTK_CONTAINER (widget)->border_width;
/* button */
GTK_COMBO_BOX_SIZE_ALLOCATE_BUTTON
@ -2292,38 +2296,40 @@ gtk_combo_box_size_allocate (GtkWidget *widget,
child.x = allocation->x + req.width;
else
child.x = allocation->x;
child.y = allocation->y;
child.width = allocation->width - req.width;
child.height = allocation->height;
if (priv->cell_view_frame)
{
child.width = MAX (1, child.width);
child.height = MAX (1, child.height);
child.x += delta_x;
child.y += delta_y;
child.width = MAX (1, child.width - delta_x * 2);
child.height = MAX (1, child.height - delta_y * 2);
gtk_widget_size_allocate (priv->cell_view_frame, &child);
/* the sample */
if (priv->has_frame)
{
child.x +=
GTK_CONTAINER (priv->cell_view_frame)->border_width +
GTK_WIDGET (priv->cell_view_frame)->style->xthickness;
child.y +=
GTK_CONTAINER (priv->cell_view_frame)->border_width +
GTK_WIDGET (priv->cell_view_frame)->style->ythickness;
child.width -= 2 * (
GTK_CONTAINER (priv->cell_view_frame)->border_width +
GTK_WIDGET (priv->cell_view_frame)->style->xthickness);
child.height -= 2 * (
GTK_CONTAINER (priv->cell_view_frame)->border_width +
GTK_WIDGET (priv->cell_view_frame)->style->ythickness);
}
if (priv->has_frame)
{
delta_x = GTK_CONTAINER (priv->cell_view_frame)->border_width +
GTK_WIDGET (priv->cell_view_frame)->style->xthickness;
delta_y = GTK_CONTAINER (priv->cell_view_frame)->border_width +
GTK_WIDGET (priv->cell_view_frame)->style->ythickness;
child.x += delta_x;
child.y += delta_y;
child.width -= delta_x * 2;
child.height -= delta_y * 2;
}
}
else
{
child.x += delta_x;
child.y += delta_y;
child.width -= delta_x * 2;
child.height -= delta_y * 2;
}
child.x += shadow_width;
child.y += shadow_height;
child.width -= shadow_width * 2;
child.height -= shadow_height * 2;
child.width = MAX (1, child.width);
child.height = MAX (1, child.height);