From: Jean-Marc Lasgouttes Date: Wed, 24 Apr 2013 16:31:34 +0000 (+0200) Subject: Fix bug #8633: change tracking: paragraph break is restored by undo X-Git-Tag: 2.0.6~6^2 X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=36e4d210d119230129c176507ce83f443a9c7490;p=features.git Fix bug #8633: change tracking: paragraph break is restored by undo A recordUndo call was missing in this case. --- diff --git a/src/Text.cpp b/src/Text.cpp index 93c7c234ff..ea3db714ec 100644 --- a/src/Text.cpp +++ b/src/Text.cpp @@ -1590,11 +1590,13 @@ bool Text::backspace(Cursor & cur) if (cur.pit() == 0) return dissolveInset(cur); - Paragraph & prev_par = pars_[cur.pit() - 1]; + Cursor prev_cur = cur; + --prev_cur.pit(); - if (!prev_par.isMergedOnEndOfParDeletion(cur.buffer()->params().trackChanges)) { - prev_par.setChange(prev_par.size(), Change(Change::DELETED)); - setCursorIntern(cur, cur.pit() - 1, prev_par.size()); + if (!prev_cur.paragraph().isMergedOnEndOfParDeletion(cur.buffer()->params().trackChanges)) { + cur.recordUndo(ATOMIC_UNDO, prev_cur.pit(), prev_cur.pit()); + prev_cur.paragraph().setChange(prev_cur.lastpos(), Change(Change::DELETED)); + setCursorIntern(cur, prev_cur.pit(), prev_cur.lastpos()); return true; } // The cursor is at the beginning of a paragraph, so diff --git a/status.20x b/status.20x index d35946afa4..a5c8e92369 100644 --- a/status.20x +++ b/status.20x @@ -137,6 +137,9 @@ What's new - Fix a few selection bugs in tabular (bugs 4981, 7988). +- Handle properly undo after deleting a paragraph break when change + tracking is enabled (bug 8633). + - Fix `select whole inset' function in math editor. - Fix confusing behavior in search when changing directions (bug 8543)