forked from AuroraMiddleware/gtk
Small cleanup in label sizing code.
Move ellipsized_chars calculation in the scope where it is used. https://bugzilla.gnome.org/show_bug.cgi?id=647284
This commit is contained in:
parent
af7650ce1f
commit
1ad1c33f52
@ -3685,7 +3685,7 @@ gtk_label_get_preferred_layout_size (GtkLabel *label,
|
|||||||
GtkLabelPrivate *priv = label->priv;
|
GtkLabelPrivate *priv = label->priv;
|
||||||
PangoLayout *layout;
|
PangoLayout *layout;
|
||||||
PangoRectangle rect;
|
PangoRectangle rect;
|
||||||
gint text_width, ellipsize_chars, guess_width;
|
gint text_width, guess_width;
|
||||||
|
|
||||||
/* "width-chars" Hard-coded minimum width:
|
/* "width-chars" Hard-coded minimum width:
|
||||||
* - minimum size should be MAX (width-chars, strlen ("..."));
|
* - minimum size should be MAX (width-chars, strlen ("..."));
|
||||||
@ -3718,12 +3718,6 @@ gtk_label_get_preferred_layout_size (GtkLabel *label,
|
|||||||
pango_layout_get_extents (layout, NULL, &rect);
|
pango_layout_get_extents (layout, NULL, &rect);
|
||||||
text_width = rect.width;
|
text_width = rect.width;
|
||||||
|
|
||||||
/* enforce minimum width for ellipsized labels at ~3 chars */
|
|
||||||
if (priv->ellipsize)
|
|
||||||
ellipsize_chars = 3;
|
|
||||||
else
|
|
||||||
ellipsize_chars = 0;
|
|
||||||
|
|
||||||
/* "width-chars" Hard-coded minimum width:
|
/* "width-chars" Hard-coded minimum width:
|
||||||
* - minimum size should be MAX (width-chars, strlen ("..."));
|
* - minimum size should be MAX (width-chars, strlen ("..."));
|
||||||
* - natural size should be MAX (width-chars, strlen (priv->text));
|
* - natural size should be MAX (width-chars, strlen (priv->text));
|
||||||
@ -3745,10 +3739,13 @@ gtk_label_get_preferred_layout_size (GtkLabel *label,
|
|||||||
|
|
||||||
if (priv->ellipsize || priv->wrap)
|
if (priv->ellipsize || priv->wrap)
|
||||||
{
|
{
|
||||||
gint char_pixels;
|
gint char_pixels, ellipsize_chars;
|
||||||
|
|
||||||
char_pixels = get_char_pixels (GTK_WIDGET (label), layout);
|
char_pixels = get_char_pixels (GTK_WIDGET (label), layout);
|
||||||
|
|
||||||
|
/* enforce minimum width for ellipsized labels at ~3 chars */
|
||||||
|
ellipsize_chars = priv->ellipsize ? 3 : 0;
|
||||||
|
|
||||||
required->width = char_pixels * MAX (priv->width_chars, ellipsize_chars);
|
required->width = char_pixels * MAX (priv->width_chars, ellipsize_chars);
|
||||||
|
|
||||||
/* Default to the minimum width regularly guessed by GTK+ if no minimum
|
/* Default to the minimum width regularly guessed by GTK+ if no minimum
|
||||||
|
Loading…
Reference in New Issue
Block a user