From: Lars Gullik Bjønnes Date: Fri, 19 Aug 2005 16:22:22 +0000 (+0000) Subject: 2005-08-19 Lars Gullik Bj����nnes X-Git-Tag: 1.6.10~13960 X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=411ece27876dd1eff20e6bfa97835a805260160d;p=lyx.git 2005-08-19 Lars Gullik Bj����nnes * 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 --- diff --git a/src/ChangeLog b/src/ChangeLog index e93df99fb7..262e49ad74 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,7 @@ +2005-08-19 Lars Gullik Bjønnes + + * CutAndPaste.C (eraseSelectionHelper): fix bug 1920 + use old deleteion algorithm when changetracking is on. 2005-08-18 Martin Vermeer diff --git a/src/CutAndPaste.C b/src/CutAndPaste.C index d839dea055..8483d004d0 100644 --- a/src/CutAndPaste.C +++ b/src/CutAndPaste.C @@ -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) {