commit 5c1d65afee3a37d5befcf9eb55d8d50e1d8e4f13
Author: Jean-Marc Lasgouttes <[email protected]>
Date:   Fri Jan 4 16:24:18 2019 +0100

    Fix drawing of labels in insets
    
    In many cases, the origin xo_ of insets was forgotten.
    
    Fixes bug #11425.
---
 src/RowPainter.cpp |   10 +++++-----
 1 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/src/RowPainter.cpp b/src/RowPainter.cpp
index 43b3be2..60bb5a7 100644
--- a/src/RowPainter.cpp
+++ b/src/RowPainter.cpp
@@ -432,7 +432,7 @@ void RowPainter::paintLabel() const
        double x = x_;
 
        if (row_.isRTL())
-               x = tm_.width() - row_.right_margin + fm.width(layout.labelsep);
+               x = xo_ + tm_.width() - row_.right_margin + 
fm.width(layout.labelsep);
        else
                x = x_ - fm.width(layout.labelsep) - fm.width(str);
 
@@ -467,10 +467,10 @@ void RowPainter::paintTopLevelLabel() const
 
        double x = x_;
        if (layout.labeltype == LABEL_CENTERED) {
-               x = row_.left_margin + (tm_.width() - row_.left_margin - 
row_.right_margin) / 2;
+               x += (tm_.width() - row_.left_margin - row_.right_margin) / 2;
                x -= fm.width(str) / 2;
        } else if (row_.isRTL()) {
-               x = tm_.width() - row_.right_margin - fm.width(str);
+               x = xo_ + tm_.width() - row_.right_margin - fm.width(str);
        }
        pi_.pain.text(int(x), yo_ - maxdesc - labeladdon, str, font);
 }
@@ -557,9 +557,9 @@ void RowPainter::paintLast() const
                }
 
                if (endlabel == END_LABEL_BOX)
-                       pi_.pain.rectangle(x, y, size, size, font.realColor());
+                       pi_.pain.rectangle(xo_ + x, y, size, size, 
font.realColor());
                else
-                       pi_.pain.fillRectangle(x, y, size, size, 
font.realColor());
+                       pi_.pain.fillRectangle(xo_ + x, y, size, size, 
font.realColor());
                break;
        }
 

Reply via email to