X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FCutAndPaste.C;h=c2ddae5c60dfcd7720ca3933fb553b34cf921502;hb=28902af06012253c7b5eb80e179a352aac17d6a5;hp=0272f978b5319a1af72afb0174c354d8b994e822;hpb=dd00339db356a210cf5b3c011526674ed64c99a5;p=lyx.git diff --git a/src/CutAndPaste.C b/src/CutAndPaste.C index 0272f978b5..c2ddae5c60 100644 --- a/src/CutAndPaste.C +++ b/src/CutAndPaste.C @@ -210,8 +210,8 @@ pasteSelectionHelper(LCursor & cur, ParagraphList const & parlist, ParIterator fend = par_iterator_end(in); for (; fpit != fend; ++fpit) { - InsetList::iterator lit = fpit->insetlist.begin(); - InsetList::iterator eit = fpit->insetlist.end(); + InsetList::const_iterator lit = fpit->insetlist.begin(); + InsetList::const_iterator eit = fpit->insetlist.end(); for (; lit != eit; ++lit) { switch (lit->inset->lyxCode()) { @@ -297,18 +297,11 @@ PitPosPair eraseSelectionHelper(BufferParams const & params, pos_type const left = (pit == startpit ? startpos : 0); pos_type const right = (pit == endpit ? endpos : pars[pit].size() + 1); + bool const merge = pars[pit].isMergedOnEndOfParDeletion(params.trackChanges); + // Logically erase only, including the end-of-paragraph character pars[pit].eraseChars(left, right, params.trackChanges); - // A paragraph break has to be physically removed by merging only - // if either (1) change tracking is off, or (2) the imaginary - // end-of-paragraph character is marked as inserted even after - // the erase operation (please see Paragraph::Pimpl::eraseChar(...) - // for details on end-of-par handling) - - bool const merge = !params.trackChanges || - pars[pit].isInserted(pars[pit].size()); - // Separate handling of paragraph break: if (merge && pit != endpit && (pit + 1 != endpit || pars[pit].hasSameLayout(pars[pit + 1]))) {