From: Dana Jansens Date: Wed, 23 May 2007 01:42:59 +0000 (+0000) Subject: pango lies. do the pixel conversion ourselves X-Git-Url: https://git.dogcows.com/gitweb?a=commitdiff_plain;h=3f3d59904e47887574b19e8291bf292e9cf1382a;p=chaz%2Fopenbox pango lies. do the pixel conversion ourselves --- diff --git a/render/font.c b/render/font.c index 3755c1ff..73449f91 100644 --- a/render/font.c +++ b/render/font.c @@ -146,9 +146,12 @@ static void font_measure_full(const RrFont *f, const gchar *str, pango_layout_set_text(f->layout, str, -1); pango_layout_set_width(f->layout, -1); - pango_layout_get_pixel_extents(f->layout, NULL, &rect); - *x = rect.width + ABS(shadow_x) + 4 /* we put a 2 px edge on each side */; - *y = rect.height + ABS(shadow_y); + pango_layout_get_extents(f->layout, NULL, &rect); + /* DONT use pango_layout_get_pixel_extents. they say it's guaranteed to + fit the text but they lie. figure it out ourselves */ + *x = (rect.width + PANGO_SCALE - 1) / PANGO_SCALE + + ABS(shadow_x) + 4 /* we put a 2 px edge on each side */; + *y = (rect.height + PANGO_SCALE - 1) / PANGO_SCALE + ABS(shadow_y); } RrSize *RrFontMeasureString(const RrFont *f, const gchar *str,