From: Jean-Marc Lasgouttes Date: Tue, 23 Aug 2016 15:43:38 +0000 (+0200) Subject: Move correctly the end of proof marker when row is large X-Git-Tag: 2.3.0alpha1~1107 X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=07c7dae367aea2ebc6486d1cc67b11c409f2d8a0;p=features.git Move correctly the end of proof marker when row is large This was a regression from 2.1.x in LtR mode, and it never worked correctly in RtL mode. Fixes bug #10344. --- diff --git a/src/RowPainter.cpp b/src/RowPainter.cpp index f0374c2781..0bbcb5723d 100644 --- a/src/RowPainter.cpp +++ b/src/RowPainter.cpp @@ -513,14 +513,17 @@ void RowPainter::paintLast() const FontMetrics const & fm = theFontMetrics(font); int const size = int(0.75 * fm.maxAscent()); int const y = yo_ - size; - int const max_row_width = width_ - size - Inset::TEXT_TO_INSET_OFFSET; - int x = is_rtl ? nestMargin() + changebarMargin() - : max_row_width - row_.right_margin; // If needed, move the box a bit to avoid overlapping with text. - int const rem = max_row_width - row_.width(); - if (rem <= 0) - x += is_rtl ? rem : - rem; + int x = 0; + if (is_rtl) { + int const normal_x = nestMargin() + changebarMargin(); + x = min(normal_x, row_.left_margin - size - Inset::TEXT_TO_INSET_OFFSET); + } else { + int const normal_x = width_ - row_.right_margin + - size - Inset::TEXT_TO_INSET_OFFSET; + x = max(normal_x, row_.width()); + } if (endlabel == END_LABEL_BOX) pi_.pain.rectangle(x, y, size, size, Color_eolmarker);