]> git.lyx.org Git - features.git/commitdiff
* Outline(): fix undo/redo for promote/demote
authorAbdelrazak Younes <younes@lyx.org>
Sun, 2 Mar 2008 09:17:10 +0000 (09:17 +0000)
committerAbdelrazak Younes <younes@lyx.org>
Sun, 2 Mar 2008 09:17:10 +0000 (09:17 +0000)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23379 a592a061-630c-0410-9148-cb99ea01b6c8

src/Text3.cpp

index e7bbb9b9b192ac602e85f587bf55023d75e8d682..f6be355a4191c39158d15786be7432758ad8b959 100644 (file)
@@ -320,8 +320,9 @@ static void outline(OutlineOp mode, Cursor & cur)
                        pars.erase(start, finish);
                        return;
                }
-               case OutlineIn:
-                       buf.undo().recordUndo(cur);
+               case OutlineIn: {
+                       pit_type const len = distance(start, finish);
+                       buf.undo().recordUndo(cur, ATOMIC_UNDO, pit, pit + len - 1);
                        for (; start != finish; ++start) {
                                toclevel = start->layout()->toclevel;
                                if (toclevel == Layout::NOT_IN_TOC)
@@ -336,9 +337,10 @@ static void outline(OutlineOp mode, Cursor & cur)
                                }
                        }
                        return;
-
-               case OutlineOut:
-                       buf.undo().recordUndo(cur);
+               }
+               case OutlineOut: {
+                       pit_type const len = distance(start, finish);
+                       buf.undo().recordUndo(cur, ATOMIC_UNDO, pit, pit + len - 1);
                        for (; start != finish; ++start) {
                                toclevel = start->layout()->toclevel;
                                if (toclevel == Layout::NOT_IN_TOC)
@@ -353,6 +355,7 @@ static void outline(OutlineOp mode, Cursor & cur)
                                }
                        }
                        return;
+               }
        }
 }