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)
This commit is contained in:
Matthias Clasen 2004-11-22 17:07:41 +00:00 committed by Matthias Clasen
parent c77a880be9
commit 5ffa85e1f0
5 changed files with 30 additions and 3 deletions

View File

@ -1,5 +1,9 @@
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)
* configure.in: Require Pango 1.7.0 for PangoRenderer (#159061,
Crispin Flowerday)

View File

@ -1,5 +1,9 @@
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)
* configure.in: Require Pango 1.7.0 for PangoRenderer (#159061,
Crispin Flowerday)

View File

@ -1,5 +1,9 @@
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)
* configure.in: Require Pango 1.7.0 for PangoRenderer (#159061,
Crispin Flowerday)

View File

@ -1,5 +1,9 @@
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)
* configure.in: Require Pango 1.7.0 for PangoRenderer (#159061,
Crispin Flowerday)

View File

@ -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;