[gtk+/combo-refactor: 7/47] Fixed GtkMenuItem to reserve the actual arrow size and spacing
- From: Tristan Van Berkom <tvb src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+/combo-refactor: 7/47] Fixed GtkMenuItem to reserve the actual arrow size and spacing
- Date: Mon, 6 Dec 2010 12:26:35 +0000 (UTC)
commit 4cfa48413f4588cd6d8de49a2912b965f273ff33
Author: Tristan Van Berkom <tristan van berkom gmail com>
Date: Fri Nov 19 13:29:20 2010 +0900
Fixed GtkMenuItem to reserve the actual arrow size and spacing
GtkMenuItem was reserving arrow size based on it's requested height,
now base the submenu arrow size on the actual arrow size and spacing.
gtk/gtkmenuitem.c | 15 +++++++++++----
1 files changed, 11 insertions(+), 4 deletions(-)
---
diff --git a/gtk/gtkmenuitem.c b/gtk/gtkmenuitem.c
index ee1bec1..6ec5458 100644
--- a/gtk/gtkmenuitem.c
+++ b/gtk/gtkmenuitem.c
@@ -1348,7 +1348,6 @@ gtk_menu_item_size_allocate (GtkWidget *widget,
if (child)
{
GtkMenuItemPrivate *priv = GET_PRIVATE (menu_item);
- GtkRequisition child_requisition;
GtkStyle *style;
guint horizontal_padding;
guint border_width;
@@ -1389,12 +1388,20 @@ gtk_menu_item_size_allocate (GtkWidget *widget,
child_allocation.x += allocation->x;
child_allocation.y += allocation->y;
- gtk_widget_get_preferred_size (child, &child_requisition, NULL);
if ((menu_item->submenu && !GTK_IS_MENU_BAR (parent)) || priv->reserve_indicator)
{
+ guint arrow_spacing;
+ gint arrow_size;
+
+ gtk_widget_style_get (widget,
+ "arrow-spacing", &arrow_spacing,
+ NULL);
+
+ get_arrow_size (widget, child, &arrow_size);
+
if (direction == GTK_TEXT_DIR_RTL)
- child_allocation.x += child_requisition.height;
- child_allocation.width -= child_requisition.height;
+ child_allocation.x += arrow_size + arrow_spacing;
+ child_allocation.width -= arrow_size + arrow_spacing;
}
if (child_allocation.width < 1)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]