Changed GtkCellRendererText to request less than wrap-width if the text is smaller than the wrap-width (or width-chars).

This commit is contained in:
Tristan Van Berkom 2010-11-19 15:01:07 +09:00
parent 2dd2c7ce05
commit 7fc7bd613b

View File

@ -2153,12 +2153,14 @@ gtk_cell_renderer_text_get_preferred_width (GtkCellRenderer *cell,
if ((priv->ellipsize_set && priv->ellipsize != PANGO_ELLIPSIZE_NONE) || priv->width_chars > 0) if ((priv->ellipsize_set && priv->ellipsize != PANGO_ELLIPSIZE_NONE) || priv->width_chars > 0)
min_width = min_width =
xpad * 2 + (PANGO_PIXELS (char_width) * MAX (priv->width_chars, ellipsize_chars)); xpad * 2 +
MIN (PANGO_PIXELS (text_width),
(PANGO_PIXELS (char_width) * MAX (priv->width_chars, ellipsize_chars)));
/* If no width-chars set, minimum for wrapping text will be the wrap-width */ /* If no width-chars set, minimum for wrapping text will be the wrap-width */
else if (priv->wrap_width > -1) else if (priv->wrap_width > -1)
min_width = xpad * 2 + rect.x + priv->wrap_width; min_width = xpad * 2 + rect.x + MIN (PANGO_PIXELS (text_width), priv->wrap_width);
else else
min_width = xpad * 2 + rect.x + guess_width; min_width = xpad * 2 + rect.x + PANGO_PIXELS (text_width);
if (priv->width_chars > 0) if (priv->width_chars > 0)
nat_width = xpad * 2 + nat_width = xpad * 2 +