]> 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>
Thu, 25 Apr 2013 09:06:11 +0000 (11:06 +0200)
A recordUndo call was missing in this case.

src/Text.cpp

index 932a3929d79bb4da2965b8cad4e1d8d671d9abe5..86fd90360e10d033ae32311c45cfe3ababe7bc68 100644 (file)
@@ -1632,11 +1632,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