// ⤶ U+2936 ARROW POINTING DOWNWARDS THEN CURVING LEFTWARDS
// ¶ U+00B6 PILCROW SIGN
char_type const screen_char = (c == 0x2028) ? 0x2936 : 0x00B6;
- row.add(i, screen_char, *fi, par.lookupChange(i), i >= body_pos);
+ row.add(i, screen_char, *fi, par.lookupChange(i));
} else
// row elements before body are unbreakable
- row.add(i, c, *fi, par.lookupChange(i), i >= body_pos);
+ row.add(i, c, *fi, par.lookupChange(i));
// add inline completion width
// draw logically behind the previous character
&& prevpar.getLabelWidthString() == par.getLabelWidthString()) {
layoutasc = layout.itemsep * dh;
} else if (pit != 0 && layout.topsep > 0)
- layoutasc = layout.topsep * dh;
+ // combine the separation between different layouts (with same depth)
+ layoutasc = max(0.0,
+ prevpar.getDepth() != par.getDepth() ? layout.topsep
+ : layout.topsep - prevpar.layout().bottomsep) * dh;
asc += int(layoutasc * 2 / (2 + pars[pit].getDepth()));
// already cleared because of a full repaint.
if (!pi.full_repaint && row.changed()) {
LYXERR(Debug::PAINTING, "Clear rect@("
- << max(row_x, 0) << ", " << y - row.ascent() << ")="
+ << x << ", " << y - row.ascent() << ")="
<< width() << " x " << row.height());
- pi.pain.fillRectangle(row_x, y - row.ascent(),
+ pi.pain.fillRectangle(x, y - row.ascent(),
width(), row.height(), pi.background_color);
}