summaryrefslogtreecommitdiff
path: root/gtk/gtkcellrenderertext.c
diff options
context:
space:
mode:
authorKristian Rietveld <kris@gtk.org>2010-12-23 18:41:23 +0100
committerKristian Rietveld <kris@gtk.org>2010-12-23 18:41:23 +0100
commit9ab2786991db56f49ec7eaff20118734c03470b2 (patch)
treef3059a37a408bf470fd05e1823094acc1c325eeb /gtk/gtkcellrenderertext.c
parent31536736ea0fe25056689b9b7ccd914910281b37 (diff)
downloadgtk+-9ab2786991db56f49ec7eaff20118734c03470b2.tar.gz
GtkCellRendererText: use PANGO_PIXELS_CEIL for text_width
Usually pango_layout_get_pixel_extents() is used, which uses PANGO_PIXELS_CEIL on the rectangle's width. This commit makes the new function gtk_cell_renderer_text_get_preferred_width() consistent with this. This fixes rounding errors on Mac OS X, where we were seeing tree views with a double height for a single line of text, while the usual single row height would have been sufficient.
Diffstat (limited to 'gtk/gtkcellrenderertext.c')
-rw-r--r--gtk/gtkcellrenderertext.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/gtk/gtkcellrenderertext.c b/gtk/gtkcellrenderertext.c
index 2cff3a47c3..5f2c2c2f96 100644
--- a/gtk/gtkcellrenderertext.c
+++ b/gtk/gtkcellrenderertext.c
@@ -2157,19 +2157,19 @@ 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 +
- MIN (PANGO_PIXELS (text_width),
+ MIN (PANGO_PIXELS_CEIL (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 + MIN (PANGO_PIXELS (text_width), priv->wrap_width);
+ min_width = xpad * 2 + rect.x + MIN (PANGO_PIXELS_CEIL (text_width), priv->wrap_width);
else
- min_width = xpad * 2 + rect.x + PANGO_PIXELS (text_width);
+ min_width = xpad * 2 + rect.x + PANGO_PIXELS_CEIL (text_width);
if (priv->width_chars > 0)
nat_width = xpad * 2 +
- MAX ((PANGO_PIXELS (char_width) * priv->width_chars), PANGO_PIXELS (text_width));
+ MAX ((PANGO_PIXELS (char_width) * priv->width_chars), PANGO_PIXELS_CEIL (text_width));
else
- nat_width = xpad * 2 + PANGO_PIXELS (text_width);
+ nat_width = xpad * 2 + PANGO_PIXELS_CEIL (text_width);
nat_width = MAX (nat_width, min_width);