]> git.lyx.org Git - features.git/commitdiff
Fix bug #8633: change tracking: paragraph break is restored by undo
authorJean-Marc Lasgouttes <lasgouttes@lyx.org>
Wed, 24 Apr 2013 16:31:34 +0000 (18:31 +0200)
committerJean-Marc Lasgouttes <lasgouttes@lyx.org>
Sun, 28 Apr 2013 18:57:18 +0000 (20:57 +0200)
A recordUndo call was missing in this case.

src/Text.cpp
status.20x

index 93c7c234ff66a6fb13fb98c464a2294a6bc77f8e..ea3db714ecebf96587c34d2fe8092181edc5775f 100644 (file)
@@ -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
index d35946afa40cc016cfbf761c50cffa0255751a68..a5c8e923695324a765d258db5ca48a788aad924f 100644 (file)
@@ -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)