]> git.lyx.org Git - features.git/commitdiff
Fix vertical offset of fonts like MinionPro
authorJean-Marc Lasgouttes <lasgouttes@lyx.org>
Thu, 3 Jan 2019 11:14:27 +0000 (12:14 +0100)
committerJean-Marc Lasgouttes <lasgouttes@lyx.org>
Thu, 3 Jan 2019 11:19:47 +0000 (12:19 +0100)
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.

src/frontends/qt4/GuiPainter.cpp

index 8bd9efbe178ff5a5facd73e1debe0b42f18ed7c9..e0b2177c927cff6598ae063789aaa9173d400419 100644 (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);