summaryrefslogtreecommitdiff
path: root/render
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2007-05-23 01:42:59 +0000
committerDana Jansens <danakj@orodu.net>2007-05-23 01:42:59 +0000
commit3f3d59904e47887574b19e8291bf292e9cf1382a (patch)
treed9fa7a78e9b7584af6f880d4cbe2a7d6c5cbe3d8 /render
parente8dbe09cddf15de9b48539cac4f1f6639962a6d7 (diff)
pango lies. do the pixel conversion ourselves
Diffstat (limited to 'render')
-rw-r--r--render/font.c9
1 files changed, 6 insertions, 3 deletions
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,