]> git.lyx.org Git - features.git/commitdiff
Fix drawing of labels in insets
authorJean-Marc Lasgouttes <lasgouttes@lyx.org>
Fri, 4 Jan 2019 15:24:18 +0000 (16:24 +0100)
committerJean-Marc Lasgouttes <lasgouttes@lyx.org>
Fri, 4 Jan 2019 16:06:49 +0000 (17:06 +0100)
In many cases, the origin xo_ of insets was forgotten.

Fixes bug #11425.

src/RowPainter.cpp

index 43b3be20ce67c35766183f5e647cd2fffc1ec625..60bb5a741079c8f653d603b1262e4d19dd600441 100644 (file)
@@ -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;
        }