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.

(cherry picked from commit 07c7dae367)
This commit is contained in:
Jean-Marc Lasgouttes 2016-08-23 17:43:38 +02:00
parent 3e432ec631
commit a957879839
2 changed files with 11 additions and 6 deletions

View File

@ -540,14 +540,17 @@ void RowPainter::paintLast()
FontMetrics const & fm = theFontMetrics(font); FontMetrics const & fm = theFontMetrics(font);
int const size = int(0.75 * fm.maxAscent()); int const size = int(0.75 * fm.maxAscent());
int const y = yo_ - size; 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. // If needed, move the box a bit to avoid overlapping with text.
int const rem = max_row_width - row_.width(); int x = 0;
if (rem <= 0) if (is_rtl) {
x += is_rtl ? rem : - rem; 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) if (endlabel == END_LABEL_BOX)
pi_.pain.rectangle(x, y, size, size, Color_eolmarker); pi_.pain.rectangle(x, y, size, size, Color_eolmarker);

View File

@ -91,6 +91,8 @@ What's new
- When doing a selection with Shift-click, make sure that the selection anchor - When doing a selection with Shift-click, make sure that the selection anchor
is correct. is correct.
- Avoid to overwrite end-of-proof character with text on screen (bug
10344).
* INTERNALS * INTERNALS