]> git.lyx.org Git - features.git/commitdiff
Avoid rounding issue when painting selection
authorJean-Marc Lasgouttes <lasgouttes@lyx.org>
Mon, 12 Jun 2017 12:39:03 +0000 (14:39 +0200)
committerJean-Marc Lasgouttes <lasgouttes@lyx.org>
Mon, 12 Jun 2017 12:39:03 +0000 (14:39 +0200)
This is the same issue that was addressed in the all_sel case at
695b0cc3. The rounding issue only happens at specific zoom and
jusification values.

Fixes part of #8883.

src/RowPainter.cpp

index 91dfb63e4d5331c6f4d9808394380ca360c67437..55155716bea43c2a7afac6cc6055210b0a3c2de7 100644 (file)
@@ -640,8 +640,9 @@ void RowPainter::paintSelection() const
                        double x2 = e.pos2x(to);
                        if (x1 > x2)
                                swap(x1, x2);
-                       pi_.pain.fillRectangle(int(x + x1), y1, int(x2 - x1), y2 - y1,
-                                              Color_selection);
+                       // the 3rd argument is written like that to avoid rounding issues
+                       pi_.pain.fillRectangle(int(x + x1), y1, int(x2 + x) - int(x1 + x),
+                                              y2 - y1, Color_selection);
                }
                x += e.full_width();
        }