commit ac286e54b7dcdd7fdde46359e1b859e0c1ba54f7
Author: Stephan Witt <sw...@lyx.org>
Date:   Mon May 15 07:06:44 2023 +0200

    #12769 correct line width based painting of wavy underline
    
    With very tiny fonts the line width is 0 and the loop to construct the wavy 
line never ends.
---
 src/frontends/qt/GuiPainter.cpp |   11 ++++++-----
 1 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/src/frontends/qt/GuiPainter.cpp b/src/frontends/qt/GuiPainter.cpp
index a64d006..62e48c4 100644
--- a/src/frontends/qt/GuiPainter.cpp
+++ b/src/frontends/qt/GuiPainter.cpp
@@ -546,11 +546,12 @@ void GuiPainter::wavyHorizontalLine(FontInfo const & f, 
int x, int y, int width,
 {
        FontMetrics const & fm = theFontMetrics(f);
        int const pos = fm.underlinePos();
+       int const lw = max(1, fm.lineWidth());
 
-       setQPainterPen(computeColor(col), line_solid, fm.lineWidth());
-       int const step = 2 * fm.lineWidth();
+       setQPainterPen(computeColor(col), line_solid, lw);
+       int const step = 2 * lw;
        int const xend = x + width;
-       int height = 1 * fm.lineWidth();
+       int height = lw;
        //FIXME: I am not sure if Antialiasing gives the best effect.
        //setRenderHint(Antialiasing, true);
        QVector<QPoint> points;
@@ -560,8 +561,8 @@ void GuiPainter::wavyHorizontalLine(FontInfo const & f, int 
x, int y, int width,
                points.append(QPoint(x + step, y + pos + height));
                x += step;
                points.append(QPoint(x, (qreal)y + pos + height));
-               points.append(QPoint(x + step/2, y + pos + height));
-               x += step/2;
+               points.append(QPoint(x + lw, y + pos + height));
+               x += lw;
        }
        drawPolyline(points);
        //setRenderHint(Antialiasing, false);
-- 
lyx-cvs mailing list
lyx-cvs@lists.lyx.org
http://lists.lyx.org/mailman/listinfo/lyx-cvs

Reply via email to