summaryrefslogtreecommitdiff
path: root/gtk/gtkmenuitem.c
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2004-11-22 17:07:41 +0000
committerMatthias Clasen <matthiasc@src.gnome.org>2004-11-22 17:07:41 +0000
commit5ffa85e1f0e04fdda01550698b02876f7b535352 (patch)
treeca7ccc68a49097e6601698a8a3dfb51401300048 /gtk/gtkmenuitem.c
parentc77a880be9b2c9deb7b6307ea5b846281e03b243 (diff)
downloadgdk-pixbuf-5ffa85e1f0e04fdda01550698b02876f7b535352.tar.gz
Make the size of the arrow depend only on the font size, not on the child
2004-11-22 Matthias Clasen <mclasen@redhat.com> * gtk/gtkmenuitem.c (gtk_menu_item_paint): Make the size of the arrow depend only on the font size, not on the child allocation. (#131345, Morten Welinder)
Diffstat (limited to 'gtk/gtkmenuitem.c')
-rw-r--r--gtk/gtkmenuitem.c17
1 files changed, 14 insertions, 3 deletions
diff --git a/gtk/gtkmenuitem.c b/gtk/gtkmenuitem.c
index 77e4c1362..acbf56271 100644
--- a/gtk/gtkmenuitem.c
+++ b/gtk/gtkmenuitem.c
@@ -725,6 +725,10 @@ gtk_menu_item_paint (GtkWidget *widget,
guint horizontal_padding;
GtkTextDirection direction;
GtkArrowType arrow_type;
+ PangoContext *context;
+ PangoFontMetrics *metrics;
+ gint ascent, descent;
+ PangoLayout *layout;
direction = gtk_widget_get_direction (widget);
@@ -732,10 +736,17 @@ gtk_menu_item_paint (GtkWidget *widget,
"horizontal_padding", &horizontal_padding,
NULL);
- gtk_widget_get_child_requisition (GTK_BIN (menu_item)->child,
- &child_requisition);
+ context = gtk_widget_get_pango_context (GTK_BIN (menu_item)->child);
+ metrics = pango_context_get_metrics (context,
+ GTK_WIDGET (GTK_BIN (menu_item)->child)->style->font_desc,
+ pango_context_get_language (context));
+
+ ascent = pango_font_metrics_get_ascent (metrics);
+ descent = pango_font_metrics_get_descent (metrics);
+ pango_font_metrics_unref (metrics);
+
+ arrow_size = PANGO_PIXELS (ascent + descent) - 2 * widget->style->ythickness;
- arrow_size = child_requisition.height - 2 * widget->style->ythickness;
arrow_extent = arrow_size * 0.8;
shadow_type = GTK_SHADOW_OUT;