Do not rely on x_ when painting label

Additionally fixes a warning about unused value (from clang-analyzer).
This commit is contained in:
Jean-Marc Lasgouttes 2019-02-04 12:13:01 +01:00
parent 6316b9b7ae
commit 051b6ce68a
2 changed files with 5 additions and 13 deletions

View File

@ -429,14 +429,10 @@ void RowPainter::paintLabel() const
Layout const & layout = par_.layout(); Layout const & layout = par_.layout();
FontInfo const font = labelFont(false); FontInfo const font = labelFont(false);
FontMetrics const & fm = theFontMetrics(font); FontMetrics const & fm = theFontMetrics(font);
double x = x_; int const x = row_.isRTL() ? row_.width() + fm.width(layout.labelsep)
: row_.left_margin - fm.width(layout.labelsep) - fm.width(str);
if (row_.isRTL()) pi_.pain.text(xo_ + x, yo_, str, font);
x = xo_ + row_.width() + fm.width(layout.labelsep);
else
x = x_ - fm.width(layout.labelsep) - fm.width(str);
pi_.pain.text(int(x), yo_, str, font);
} }

View File

@ -1934,15 +1934,11 @@ void TextMetrics::drawParagraph(PainterInfo & pi, pit_type const pit, int const
rp.paintDepthBar(); rp.paintDepthBar();
if (row.needsChangeBar()) if (row.needsChangeBar())
rp.paintChangeBar(); rp.paintChangeBar();
if (i == 0 && !row.isRTL()) if (i == 0)
rp.paintFirst(); rp.paintFirst();
if (i == nrows - 1 && row.isRTL()) if (i == nrows - 1)
rp.paintLast(); rp.paintLast();
rp.paintText(); rp.paintText();
if (i == nrows - 1 && !row.isRTL())
rp.paintLast();
if (i == 0 && row.isRTL())
rp.paintFirst();
rp.paintTooLargeMarks(row_x + row.left_x() < 0, rp.paintTooLargeMarks(row_x + row.left_x() < 0,
row_x + row.right_x() > bv_->workWidth()); row_x + row.right_x() > bv_->workWidth());
y += row.descent(); y += row.descent();