diff options
author | Matthias Clasen <mclasen@redhat.com> | 2004-11-22 17:07:41 +0000 |
---|---|---|
committer | Matthias Clasen <matthiasc@src.gnome.org> | 2004-11-22 17:07:41 +0000 |
commit | 5ffa85e1f0e04fdda01550698b02876f7b535352 (patch) | |
tree | ca7ccc68a49097e6601698a8a3dfb51401300048 /gtk/gtkmenuitem.c | |
parent | c77a880be9b2c9deb7b6307ea5b846281e03b243 (diff) | |
download | gtk+-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.c | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/gtk/gtkmenuitem.c b/gtk/gtkmenuitem.c index 77e4c1362e..acbf562715 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; |