From af7650ce1fb9ae8c33d9c76e5b34aae02b78366f Mon Sep 17 00:00:00 2001 From: Paolo Borelli Date: Sat, 9 Apr 2011 22:19:51 +0200 Subject: [PATCH] Factor out a get_char_pixels method for clarity. https://bugzilla.gnome.org/show_bug.cgi?id=647284 --- gtk/gtklabel.c | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/gtk/gtklabel.c b/gtk/gtklabel.c index 23ae22366f..a85eabe61a 100644 --- a/gtk/gtklabel.c +++ b/gtk/gtklabel.c @@ -3660,6 +3660,23 @@ get_size_for_allocation (GtkLabel *label, g_object_unref (layout); } +static gint +get_char_pixels (GtkWidget *label, + PangoLayout *layout) +{ + PangoContext *context; + PangoFontMetrics *metrics; + gint char_width, digit_width; + + context = pango_layout_get_context (layout); + metrics = get_font_metrics (context, GTK_WIDGET (label)); + char_width = pango_font_metrics_get_approximate_char_width (metrics); + digit_width = pango_font_metrics_get_approximate_digit_width (metrics); + pango_font_metrics_unref (metrics); + + return MAX (char_width, digit_width);; +} + static void gtk_label_get_preferred_layout_size (GtkLabel *label, PangoRectangle *required, @@ -3728,16 +3745,9 @@ gtk_label_get_preferred_layout_size (GtkLabel *label, if (priv->ellipsize || priv->wrap) { - PangoContext *context; - PangoFontMetrics *metrics; - gint char_width, digit_width, char_pixels; + gint char_pixels; - context = pango_layout_get_context (layout); - metrics = get_font_metrics (context, GTK_WIDGET (label)); - char_width = pango_font_metrics_get_approximate_char_width (metrics); - digit_width = pango_font_metrics_get_approximate_digit_width (metrics); - char_pixels = MAX (char_width, digit_width); - pango_font_metrics_unref (metrics); + char_pixels = get_char_pixels (GTK_WIDGET (label), layout); required->width = char_pixels * MAX (priv->width_chars, ellipsize_chars);