- if (!(old_cursor.par == cursor.par && old_cursor.pos == cursor.pos)
- && old_cursor.pos > 0
- && old_cursor.pos < old_cursor.par->Last()
- && old_cursor.par->IsLineSeparator(old_cursor.pos)
- && old_cursor.par->IsLineSeparator(old_cursor.pos - 1)) {
- old_cursor.par->Erase(old_cursor.pos - 1);
- RedoParagraphs(old_cursor, old_cursor.par->Next());
- // or RedoDrawingOfParagraph(old_cursor);
- // correct cursor
- if (old_cursor.par == cursor.par &&
- cursor.pos > old_cursor.pos)
- SetCursor(cursor.par, cursor.pos - 1);
- else
- SetCursor(cursor.par, cursor.pos);
- return;
+ if (old_cursor.par != cursor.par || old_cursor.pos != cursor.pos) { // Only if the cursor has really moved
+ if (old_cursor.pos > 0
+ && old_cursor.pos < old_cursor.par->Last()
+ && old_cursor.par->IsLineSeparator(old_cursor.pos)
+ && old_cursor.par->IsLineSeparator(old_cursor.pos - 1)) {
+ old_cursor.par->Erase(old_cursor.pos - 1);
+ //RedoParagraphs(old_cursor, old_cursor.par->Next());
+ status = LyXText::NEED_MORE_REFRESH;
+ //deleted = true;
+ // correct cursor
+ //if (old_cursor.par == cursor.par &&
+ // cursor.pos > old_cursor.pos)
+ // SetCursor(cursor.par, cursor.pos - 1);
+ //else
+ // SetCursor(cursor.par, cursor.pos);
+ //return;
+ }