From 07c7dae367aea2ebc6486d1cc67b11c409f2d8a0 Mon Sep 17 00:00:00 2001 From: Jean-Marc Lasgouttes Date: Tue, 23 Aug 2016 17:43:38 +0200 Subject: [PATCH] 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. --- src/RowPainter.cpp | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) 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);