if ((priv->ellipsize_set && priv->ellipsize != PANGO_ELLIPSIZE_NONE) || priv->width_chars > 0)
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 */
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
- min_width = xpad * 2 + rect.x + guess_width;
+ min_width = xpad * 2 + rect.x + PANGO_PIXELS (text_width);
if (priv->width_chars > 0)
nat_width = xpad * 2 +