commit 07c7dae367aea2ebc6486d1cc67b11c409f2d8a0
Author: Jean-Marc Lasgouttes <[email protected]>
Date:   Tue Aug 23 17:43:38 2016 +0200

    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 files changed, 9 insertions(+), 6 deletions(-)

diff --git a/src/RowPainter.cpp b/src/RowPainter.cpp
index f0374c2..0bbcb57 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);

Reply via email to