]> git.lyx.org Git - features.git/commitdiff
GuiSetBorder: Fix drawing glitch with trimmed lines
authorJuergen Spitzmueller <spitz@lyx.org>
Tue, 13 Aug 2019 15:04:42 +0000 (17:04 +0200)
committerJean-Marc Lasgouttes <lasgouttes@lyx.org>
Thu, 18 Jun 2020 13:48:43 +0000 (15:48 +0200)
src/frontends/qt/GuiSetBorder.cpp
src/frontends/qt/GuiSetBorder.h

index 30e25743fb99709a9f07e0c8a538fc4ec5436261..6866dd2ecc1e0476be1f4861acf3e6666bcfd177 100644 (file)
@@ -213,14 +213,18 @@ void GuiSetBorder::drawTop(BorderState draw)
 }
 
 
-void GuiSetBorder::undrawWideTopLine()
+void GuiSetBorder::undrawWideTopLine(bool const right)
 {
-       if (!top_drawn_wide_)
+       if (!top_drawn_wide_ && !right)
                return;
 
        // Overpaint previous lines white
-       drawLine(Qt::white, margin + corner_length + 2, margin + corner_length,
-                bwidth - margin - corner_length - 1, margin + corner_length);
+       if (right)
+               drawLine(Qt::white, margin + 2 * (corner_length + 2), margin + corner_length,
+                       bwidth - margin - corner_length - 1, margin + corner_length);
+       else
+               drawLine(Qt::white, margin + corner_length + 2, margin + corner_length,
+                        bwidth - margin - corner_length - 1, margin + corner_length);
        top_drawn_wide_ = false;
 }
 
@@ -300,14 +304,18 @@ void GuiSetBorder::drawBottom(BorderState draw)
 }
 
 
-void GuiSetBorder::undrawWideBottomLine()
+void GuiSetBorder::undrawWideBottomLine(bool const right)
 {
-       if (!bottom_drawn_wide_)
+       if (!bottom_drawn_wide_ && !right)
                return;
 
-       //Overpaint previous lines white
-       drawLine(Qt::white, margin + corner_length + 2, bwidth - margin - corner_length + 1,
-                bwidth - margin - corner_length - 1, bwidth - margin - corner_length + 1);
+       // Overpaint previous lines white
+       if (right)
+               drawLine(Qt::white, margin + 2 * (corner_length + 2), bwidth - margin - corner_length + 1,
+                       bwidth - margin - corner_length - 1, bwidth - margin - corner_length + 1);
+       else
+               drawLine(Qt::white, margin + corner_length + 2, bwidth - margin - corner_length + 1,
+                        bwidth - margin - corner_length - 1, bwidth - margin - corner_length + 1);
        bottom_drawn_wide_ = false;
 }
 
@@ -401,10 +409,10 @@ void GuiSetBorder::setTopLeftTrimEnabled(bool enabled)
 void GuiSetBorder::setTopRightTrimEnabled(bool enabled)
 {
        top_trim_right_.enabled = enabled;
-       undrawWideTopLine();
+       undrawWideTopLine(enabled);
        drawTopRightTrim(top_trim_right_.set);
        drawTop(top_.set);
-       top_drawn_wide_ = !enabled;;
+       top_drawn_wide_ = !enabled;
 }
 
 
@@ -414,17 +422,17 @@ void GuiSetBorder::setBottomLeftTrimEnabled(bool enabled)
        undrawWideBottomLine();
        drawBottomLeftTrim(bottom_trim_left_.set);
        drawBottom(bottom_.set);
-       bottom_drawn_wide_ = !enabled;;
+       bottom_drawn_wide_ = !enabled;
 }
 
 
 void GuiSetBorder::setBottomRightTrimEnabled(bool enabled)
 {
        bottom_trim_right_.enabled = enabled;
-       undrawWideBottomLine();
+       undrawWideBottomLine(enabled);
        drawBottomRightTrim(bottom_trim_right_.set);
        drawBottom(bottom_.set);
-       bottom_drawn_wide_ = !enabled;;
+       bottom_drawn_wide_ = !enabled;
 }
 
 
index 1abfa9608ee8c91f0233530bad70f03444b50684..bb73ccb1559486b2da0a2a31a8489ab7f4833840 100644 (file)
@@ -108,9 +108,9 @@ private:
        void drawLeft(BorderState);
        void drawRight(BorderState);
        void drawTop(BorderState);
-       void undrawWideTopLine();
+       void undrawWideTopLine(bool const right = false);
        void drawBottom(BorderState);
-       void undrawWideBottomLine();
+       void undrawWideBottomLine(bool const right = false);
        void drawTopLeftTrim(BorderState);
        void drawTopRightTrim(BorderState);
        void drawBottomLeftTrim(BorderState);