]> git.lyx.org Git - features.git/commitdiff
2005-08-19 Lars Gullik Bj����nnes <larsbj@gullik.net>
authorLars Gullik Bjønnes <larsbj@gullik.org>
Fri, 19 Aug 2005 16:22:22 +0000 (16:22 +0000)
committerLars Gullik Bjønnes <larsbj@gullik.org>
Fri, 19 Aug 2005 16:22:22 +0000 (16:22 +0000)
* CutAndPaste.C (eraseSelectionHelper): fix bug 1920
use old deleteion algorithm when changetracking is on.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@10400 a592a061-630c-0410-9148-cb99ea01b6c8

src/ChangeLog
src/CutAndPaste.C

index e93df99fb7751a8bdad2dcdc2499367d0324f075..262e49ad7430ebc56da1df48e9847a6a241f4cc0 100644 (file)
@@ -1,3 +1,7 @@
+2005-08-19  Lars Gullik Bjønnes  <larsbj@gullik.net>
+
+       * CutAndPaste.C (eraseSelectionHelper): fix bug 1920
+       use old deleteion algorithm when changetracking is on.
 
 2005-08-18  Martin Vermeer  <martin.vermeer@hut.fi>
 
index d839dea0552e66f1b7b037c207665bcc51be1865..8483d004d0b9f2077288947b15d77bf07a608356 100644 (file)
@@ -278,9 +278,25 @@ PitPosPair eraseSelectionHelper(BufferParams const & params,
                all_erased = false;
 
         // Erase all the "middle" paragraphs.
-        pars.erase(pars.begin() + startpit + 1, pars.begin() + endpit);
-        endpit = startpit + 1;
-
+       if (params.tracking_changes) {
+               // Look through the deleted pars if any, erasing as needed
+               for (pit_type pit = startpit + 1; pit != endpit;) {
+                       // "erase" the contents of the par
+                       pars[pit].erase(0, pars[pit].size());
+                       if (pars[pit].empty()) {
+                               // remove the par if it's now empty
+                               pars.erase(pars.begin() + pit);
+                               --endpit;
+                       } else {
+                               ++pit;
+                               all_erased = false;
+                       }
+               }
+       } else {
+               pars.erase(pars.begin() + startpit + 1, pars.begin() + endpit);
+               endpit = startpit + 1;
+       }
+       
 #if 0 // FIXME: why for cut but not copy ?
        // the cut selection should begin with standard layout
        if (realcut) {