diff --git a/gtk/gtkcellrenderertext.c b/gtk/gtkcellrenderertext.c index f7df6b140c..120100a52e 100644 --- a/gtk/gtkcellrenderertext.c +++ b/gtk/gtkcellrenderertext.c @@ -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) 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 +