#include "BufferParams.h"
#include "BufferView.h"
#include "CoordCache.h"
+#include "Cursor.h"
#include "CutAndPaste.h"
#include "debug.h"
#include "FontIterator.h"
#include "ParIterator.h"
#include "rowpainter.h"
#include "Text.h"
+#include "TextClass.h"
#include "VSpace.h"
#include "mathed/MacroTable.h"
// when layout is set; when material is pasted.
int const moveCursor = par.checkBiblio(buffer.params().trackChanges);
if (moveCursor > 0)
- const_cast<Cursor &>(bv_->cursor()).posRight();
+ const_cast<Cursor &>(bv_->cursor()).posForward();
else if (moveCursor < 0) {
Cursor & cursor = const_cast<Cursor &>(bv_->cursor());
if (cursor.pos() >= -moveCursor)
- cursor.posLeft();
+ cursor.posBackward();
}
// Optimisation: this is used in the next two loops
Bidi bidi;
+ bool const original_drawing_state = pi.pain.isDrawingEnabled();
+
y -= rb->ascent();
for (RowList::const_iterator rit = rb; rit != re; ++rit) {
y += rit->ascent();
bool const inside = (y + rit->descent() >= 0
&& y - rit->ascent() < ww);
// it is not needed to draw on screen if we are not inside.
- pi.pain.setDrawingEnabled(inside);
+ pi.pain.setDrawingEnabled(inside && original_drawing_state);
RowPainter rp(pi, *text_, pit, *rit, bidi, x, y);
// Row signature; has row changed since last paint?
pi.full_repaint = tmp;
}
// Re-enable screen drawing for future use of the painter.
- pi.pain.setDrawingEnabled(true);
+ pi.pain.setDrawingEnabled(original_drawing_state);
//LYXERR(Debug::PAINTING) << "." << endl;
}