bool const rtl = lastrow ? text_->isRTL(buffer, par) : false;
if (lastrow &&
((rtl && left_side && vc == row.pos() && x < tmpx - 5) ||
- (!rtl && !left_side && vc == end && x > tmpx + 5)))
- c = end;
- else if (vc == row.pos()) {
+ (!rtl && !left_side && vc == end && x > tmpx + 5))) {
+ if (!par.isNewline(end - 1))
+ c = end;
+ } else if (vc == row.pos()) {
c = bidi.vis2log(vc);
if (bidi.level(c) % 2 == 1)
++c;
// Don't paint the row if a full repaint has not been requested
// and if it has not changed.
if (!pi.full_repaint && !row_has_changed) {
- // Backup full_repaint status because some Inset (InsetTabular)
- // requires a full repaint
- bool tmp = pi.full_repaint;
// Paint only the insets if the text itself is
// unchanged.
rp.paintOnlyInsets();
y += row.descent();
- // Restore full_repaint status.
- pi.full_repaint = tmp;
continue;
}