diff options
Diffstat (limited to 'src/xftglyphs.c')
-rw-r--r-- | src/xftglyphs.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/xftglyphs.c b/src/xftglyphs.c index bb9057e..e6f569f 100644 --- a/src/xftglyphs.c +++ b/src/xftglyphs.c @@ -844,14 +844,18 @@ XftFontLoadGlyphs (Display *dpy, } else { + short maximum_x = (short)(font->public.max_advance_width); + short maximum_y = (short)(-font->public.max_advance_width); + short trimmed_x = (short)(TRUNC(ROUND(glyphslot->advance.x))); + short trimmed_y = (short)(-TRUNC(ROUND(glyphslot->advance.y))); if (font->info.load_flags & FT_LOAD_VERTICAL_LAYOUT) { xftg->metrics.xOff = 0; - xftg->metrics.yOff = (short)(-TRUNC(ROUND(glyphslot->advance.y))); + xftg->metrics.yOff = min(maximum_y,trimmed_y); } else { - xftg->metrics.xOff = (short)(TRUNC(ROUND(glyphslot->advance.x))); + xftg->metrics.xOff = min(maximum_x,trimmed_x); xftg->metrics.yOff = 0; } } |