summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/xftglyphs.c8
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;
}
}