DocIterator parPos = text_->macrocontextPosition();
if (!parPos.empty())
parPos.pit() = pit;
-
+ else {
+ LYXERR(Debug::INFO, "MacroContext not initialised!"
+ << " Going through the buffer again and hope"
+ << " the context is better then.");
+ updateLabels(bv_->buffer());
+ parPos = text_->macrocontextPosition();
+ BOOST_ASSERT(!parPos.empty());
+ parPos.pit() = pit;
+ }
+
// redo insets
// FIXME: We should always use getFont(), see documentation of
// noFontChange() in Inset.h.
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;
}