From 3a4c4605e9cc06f700cdfeb43f3a91592adea99a Mon Sep 17 00:00:00 2001 From: Jean-Marc Lasgouttes Date: Fri, 4 Jan 2019 16:24:18 +0100 Subject: [PATCH] Fix drawing of labels in insets In many cases, the origin xo_ of insets was forgotten. Also fix spacing between text and label in rtl Fixes bug #11425. (cherry picked from commit 5c1d65afee3a37d5befcf9eb55d8d50e1d8e4f13) (cherry picked from commit 5fc035f99c42835da41d6eb6cf5a375382c06870) --- src/RowPainter.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/RowPainter.cpp b/src/RowPainter.cpp index c6578cee2b..93ac63dce6 100644 --- a/src/RowPainter.cpp +++ b/src/RowPainter.cpp @@ -402,7 +402,7 @@ void RowPainter::paintLabel() const double x = x_; if (row_.isRTL()) - x = tm_.width() - row_.right_margin + fm.width(layout.labelsep); + x = xo_ + row_.width() + fm.width(layout.labelsep); else x = x_ - fm.width(layout.labelsep) - fm.width(str); @@ -437,10 +437,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); } @@ -525,9 +525,9 @@ void RowPainter::paintLast() const } if (endlabel == END_LABEL_BOX) - pi_.pain.rectangle(x, y, size, size, Color_eolmarker); + pi_.pain.rectangle(xo_ + x, y, size, size, Color_eolmarker); else - pi_.pain.fillRectangle(x, y, size, size, Color_eolmarker); + pi_.pain.fillRectangle(xo_ + x, y, size, size, Color_eolmarker); break; } -- 2.39.5