Fix vertical offset of fonts like MinionPro

For some reason, adding a LTR/RTL Override unicode character before a
MinionPro string increases the ascent of the line.

This creates vertical offset issues when painting if the ascent used
as reference is the one of the font. Use the QTextLine ascent instead
for better results.

This is a followup to 1bed76e2a.

Fixes (reopened) ticket #11284.
This commit is contained in:
Jean-Marc Lasgouttes 2019-01-03 12:14:27 +01:00
parent 62f8b8beb9
commit d8498d4785

View File

@ -329,7 +329,8 @@ void GuiPainter::text(int x, int y, docstring const & s,
setQPainterPen(computeColor(f.realColor()));
if (dir != Auto) {
auto ptl = fm.getTextLayout(s, dir == RtL, wordspacing);
ptl->draw(this, QPointF(x, y - fm.maxAscent()));
QTextLine const & tline = ptl->lineForTextPosition(0);
ptl->draw(this, QPointF(x, y - tline.ascent()));
} else {
if (font() != ff)
setFont(ff);