summaryrefslogtreecommitdiff
path: root/gtk
diff options
context:
space:
mode:
Diffstat (limited to 'gtk')
-rw-r--r--gtk/gtkmenuitem.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/gtk/gtkmenuitem.c b/gtk/gtkmenuitem.c
index 4f04f6c382..8c08a63e4a 100644
--- a/gtk/gtkmenuitem.c
+++ b/gtk/gtkmenuitem.c
@@ -1355,7 +1355,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;
@@ -1396,12 +1395,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)