diff options
author | Benjamin Otte <otte@redhat.com> | 2011-04-30 05:10:55 +0200 |
---|---|---|
committer | Benjamin Otte <otte@redhat.com> | 2011-05-01 04:44:56 +0200 |
commit | a64a2aded47475dbc068ebcf6a1eb452f7d50540 (patch) | |
tree | bd6fbbaa2f339015e32c288c0ba5df6adeb9cc3c /gtk/gtkmenubar.c | |
parent | a102dbcf120f239256b250e3796e54c34b99a231 (diff) | |
download | gtk+-a64a2aded47475dbc068ebcf6a1eb452f7d50540.tar.gz |
menubar: Compute proper size even when invisible
Diffstat (limited to 'gtk/gtkmenubar.c')
-rw-r--r-- | gtk/gtkmenubar.c | 109 |
1 files changed, 53 insertions, 56 deletions
diff --git a/gtk/gtkmenubar.c b/gtk/gtkmenubar.c index b234b27d18..d790e31efd 100644 --- a/gtk/gtkmenubar.c +++ b/gtk/gtkmenubar.c @@ -312,74 +312,71 @@ gtk_menu_bar_size_request (GtkWidget *widget, requisition->width = 0; requisition->height = 0; - if (gtk_widget_get_visible (widget)) - { - menu_bar = GTK_MENU_BAR (widget); - menu_shell = GTK_MENU_SHELL (widget); - priv = menu_bar->priv; + menu_bar = GTK_MENU_BAR (widget); + menu_shell = GTK_MENU_SHELL (widget); + priv = menu_bar->priv; - nchildren = 0; - children = menu_shell->priv->children; + nchildren = 0; + children = menu_shell->priv->children; - while (children) - { - child = children->data; - children = children->next; + while (children) + { + child = children->data; + children = children->next; - if (gtk_widget_get_visible (child)) - { - gint toggle_size; + if (gtk_widget_get_visible (child)) + { + gint toggle_size; - gtk_widget_get_preferred_size (child, &child_requisition, NULL); - gtk_menu_item_toggle_size_request (GTK_MENU_ITEM (child), - &toggle_size); + gtk_widget_get_preferred_size (child, &child_requisition, NULL); + gtk_menu_item_toggle_size_request (GTK_MENU_ITEM (child), + &toggle_size); - if (priv->child_pack_direction == GTK_PACK_DIRECTION_LTR || - priv->child_pack_direction == GTK_PACK_DIRECTION_RTL) - child_requisition.width += toggle_size; - else - child_requisition.height += toggle_size; + if (priv->child_pack_direction == GTK_PACK_DIRECTION_LTR || + priv->child_pack_direction == GTK_PACK_DIRECTION_RTL) + child_requisition.width += toggle_size; + else + child_requisition.height += toggle_size; - if (priv->pack_direction == GTK_PACK_DIRECTION_LTR || - priv->pack_direction == GTK_PACK_DIRECTION_RTL) - { - requisition->width += child_requisition.width; - requisition->height = MAX (requisition->height, child_requisition.height); - } - else - { - requisition->width = MAX (requisition->width, child_requisition.width); - requisition->height += child_requisition.height; - } - nchildren += 1; - } - } + if (priv->pack_direction == GTK_PACK_DIRECTION_LTR || + priv->pack_direction == GTK_PACK_DIRECTION_RTL) + { + requisition->width += child_requisition.width; + requisition->height = MAX (requisition->height, child_requisition.height); + } + else + { + requisition->width = MAX (requisition->width, child_requisition.width); + requisition->height += child_requisition.height; + } + nchildren += 1; + } + } - gtk_widget_style_get (widget, "internal-padding", &ipadding, NULL); + gtk_widget_style_get (widget, "internal-padding", &ipadding, NULL); - border_width = gtk_container_get_border_width (GTK_CONTAINER (menu_bar)); - requisition->width += (border_width + - ipadding + - BORDER_SPACING) * 2; - requisition->height += (border_width + - ipadding + - BORDER_SPACING) * 2; + border_width = gtk_container_get_border_width (GTK_CONTAINER (menu_bar)); + requisition->width += (border_width + + ipadding + + BORDER_SPACING) * 2; + requisition->height += (border_width + + ipadding + + BORDER_SPACING) * 2; - if (get_shadow_type (menu_bar) != GTK_SHADOW_NONE) - { - GtkStyleContext *context; - GtkBorder *border; + if (get_shadow_type (menu_bar) != GTK_SHADOW_NONE) + { + GtkStyleContext *context; + GtkBorder *border; - context = gtk_widget_get_style_context (widget); + context = gtk_widget_get_style_context (widget); - gtk_style_context_get (context, 0, - "border-width", &border, - NULL); + gtk_style_context_get (context, 0, + "border-width", &border, + NULL); - requisition->width += border->left + border->right; - requisition->height += border->top + border->bottom; - gtk_border_free (border); - } + requisition->width += border->left + border->right; + requisition->height += border->top + border->bottom; + gtk_border_free (border); } } |