Make DEPM respect current cursor position.

Spaces are now conserved when they surround current cursor. Examples:
  abc   |   def
becomes
  abc | def
after DEPM and
  abc |
is kept as it is.

Fixes ticket #11412.

(cherry picked from commit dff0c5729e)
This commit is contained in:
Jean-Marc Lasgouttes 2018-12-21 15:36:55 +01:00
parent 324b828717
commit 714b731e39
2 changed files with 7 additions and 2 deletions

View File

@ -850,7 +850,7 @@ bool Text::deleteEmptyParagraphMechanism(Cursor & cur,
&& old.pos() == cur[depth].pos(); && old.pos() == cur[depth].pos();
// If the chars around the old cursor were spaces, delete some of // If the chars around the old cursor were spaces, delete some of
// them , but only if the cursor has really moved. // them, but only if the cursor has really moved.
if (!same_par_pos) { if (!same_par_pos) {
// find range of spaces around cursors // find range of spaces around cursors
int from = old.pos(); int from = old.pos();
@ -868,6 +868,9 @@ bool Text::deleteEmptyParagraphMechanism(Cursor & cur,
if (from != to && from > 0 && to < oldpar.size()) if (from != to && from > 0 && to < oldpar.size())
++from; ++from;
if (same_par && cur.pos() > from && cur.pos() < to)
++from;
// Remove spaces and adapt cursor. // Remove spaces and adapt cursor.
if (from < to) { if (from < to) {
oldpar.eraseChars(from, to, cur.buffer()->params().track_changes); oldpar.eraseChars(from, to, cur.buffer()->params().track_changes);
@ -884,7 +887,7 @@ bool Text::deleteEmptyParagraphMechanism(Cursor & cur,
} }
} }
// only do our magic if we changed paragraph // only do our other magic if we changed paragraph
if (same_par) if (same_par)
return false; return false;

View File

@ -39,6 +39,8 @@ What's new
- Insert new graphics inset on the correct cursor position. - Insert new graphics inset on the correct cursor position.
- Fix regression where spaces are disappearing when editing text (bug 11412).
* DOCUMENTATION AND LOCALIZATION * DOCUMENTATION AND LOCALIZATION