diff options
-rw-r--r-- | sw/source/core/doc/DocumentContentOperationsManager.cxx | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/sw/source/core/doc/DocumentContentOperationsManager.cxx b/sw/source/core/doc/DocumentContentOperationsManager.cxx index dc262426ff1e..6d048e248c3c 100644 --- a/sw/source/core/doc/DocumentContentOperationsManager.cxx +++ b/sw/source/core/doc/DocumentContentOperationsManager.cxx @@ -2008,6 +2008,11 @@ void DocumentContentOperationsManager::DeleteRange( SwPaM & rPam ) { lcl_DoWithBreaks( *this, rPam, &DocumentContentOperationsManager::DeleteRangeImpl ); + if (m_rDoc.getIDocumentRedlineAccess().IsRedlineOn()) + { + rPam.Normalize(false); // tdf#127635 put point at the end of deletion + } + if (!m_rDoc.getIDocumentRedlineAccess().IsIgnoreRedline() && !m_rDoc.getIDocumentRedlineAccess().GetRedlineTable().empty()) { @@ -2179,10 +2184,17 @@ bool DocumentContentOperationsManager::DeleteAndJoin( SwPaM & rPam, if ( lcl_StrLenOverflow( rPam ) ) return false; - return lcl_DoWithBreaks( *this, rPam, (m_rDoc.getIDocumentRedlineAccess().IsRedlineOn()) + bool const ret = lcl_DoWithBreaks( *this, rPam, (m_rDoc.getIDocumentRedlineAccess().IsRedlineOn()) ? &DocumentContentOperationsManager::DeleteAndJoinWithRedlineImpl : &DocumentContentOperationsManager::DeleteAndJoinImpl, bForceJoinNext ); + + if (m_rDoc.getIDocumentRedlineAccess().IsRedlineOn()) + { + rPam.Normalize(false); // tdf#127635 put point at the end of deletion + } + + return ret; } // It seems that this is mostly used by SwDoc internals; the only |