diff options
author | Michael Stahl <Michael.Stahl@cib.de> | 2019-05-16 15:21:18 +0200 |
---|---|---|
committer | László Németh <nemeth@numbertext.org> | 2019-08-01 09:43:10 +0200 |
commit | beec1594587d0bf1ea2268f9a435c948b5580278 (patch) | |
tree | b78501cff07a20d87697a7198a6229295803f53e | |
parent | 4a5bb4c94037ba0461bc29f447ee919ebc2a4b86 (diff) |
tdf#125319 sw_redlinehide: handle empty paragraphs more like Word
Partially revert commit c20308f1b919ca5ce61233068946e5fddb7eadb3
Partially revert commit 4439427aadeaa0cb611011b46f0fa14bfa196f33
"#i100466# correction for showing and hiding redlines"
This gets us somewhat closer to what Word does but not exactly the same;
Word actually creates a separate formatting redline about paragraph
property changes at the time when you merge the paragraphs, but Writer's
formatting redlines are quite unhelpful.
Unfortunately ODF documents from OOo 3.2 and later (possibly also
pre-3.0, haven't checked that) will look different if they contain such
redlines.
Change-Id: I6ca67e45d805014dd0b94b0ff063780fce4207c6
Reviewed-on: https://gerrit.libreoffice.org/72425
Tested-by: Jenkins
Reviewed-by: László Németh <nemeth@numbertext.org>
-rw-r--r-- | sw/source/core/doc/docredln.cxx | 3 | ||||
-rw-r--r-- | sw/source/core/text/redlnitr.cxx | 10 | ||||
-rw-r--r-- | sw/source/core/text/txtfrm.cxx | 4 |
3 files changed, 9 insertions, 8 deletions
diff --git a/sw/source/core/doc/docredln.cxx b/sw/source/core/doc/docredln.cxx index d18a30541dcf..4bbfb6da14df 100644 --- a/sw/source/core/doc/docredln.cxx +++ b/sw/source/core/doc/docredln.cxx @@ -1458,7 +1458,8 @@ void SwRangeRedline::DelCopyOfSection(size_t nMyPos) if( pCSttNd && pCEndNd ) { // #i100466# - force a <join next> on <delete and join> operation - pDoc->getIDocumentContentOperations().DeleteAndJoin( aPam, true ); + // tdf#125319 - rather not? + pDoc->getIDocumentContentOperations().DeleteAndJoin(aPam/*, true*/); } else if( pCSttNd || pCEndNd ) { diff --git a/sw/source/core/text/redlnitr.cxx b/sw/source/core/text/redlnitr.cxx index 6133b08ce1bb..0f26c0324a68 100644 --- a/sw/source/core/text/redlnitr.cxx +++ b/sw/source/core/text/redlnitr.cxx @@ -82,8 +82,8 @@ CheckParaRedlineMerge(SwTextFrame & rFrame, SwTextNode & rTextNode, SwPosition const*const pStart(pRed->Start()); SwPosition const*const pEnd(pRed->End()); if (*pStart == *pEnd) - { // only allowed while moving - assert(IDocumentRedlineAccess::IsHideChanges(rIDRA.GetRedlineFlags())); + { // only allowed while moving (either way?) +// assert(IDocumentRedlineAccess::IsHideChanges(rIDRA.GetRedlineFlags())); continue; } if (pStart->nNode.GetNode().IsTableNode()) @@ -222,14 +222,14 @@ CheckParaRedlineMerge(SwTextFrame & rFrame, SwTextNode & rTextNode, if (extents.empty()) // there was no text anywhere { assert(mergedText.isEmpty()); -// pParaPropsNode = &rTextNode; // if every node is empty, the first one wins + pParaPropsNode = &rTextNode; // if every node is empty, the first one wins } else { assert(!mergedText.isEmpty()); -// pParaPropsNode = extents.begin()->pNode; // para props from first node that isn't empty + pParaPropsNode = extents.begin()->pNode; // para props from first node that isn't empty } - pParaPropsNode = &rTextNode; // well, actually... +// pParaPropsNode = &rTextNode; // well, actually... // keep lists up to date with visible nodes if (pParaPropsNode->IsInList() && !pParaPropsNode->GetNum(rFrame.getRootFrame())) { diff --git a/sw/source/core/text/txtfrm.cxx b/sw/source/core/text/txtfrm.cxx index 5dc660ba0d4a..6d3e78bb9c79 100644 --- a/sw/source/core/text/txtfrm.cxx +++ b/sw/source/core/text/txtfrm.cxx @@ -1135,7 +1135,7 @@ TextFrameIndex UpdateMergedParaForDelete(MergedPara & rMerged, // pFirstNode is never updated if (nErased && nErased == nFoundNode) { // all visible text from node was erased -#if 0 +#if 1 if (rMerged.pParaPropsNode == &rNode) { rMerged.pParaPropsNode->RemoveFromListRLHidden(); @@ -1296,7 +1296,7 @@ SwTextNode const* SwTextFrame::GetTextNodeForParaProps() const sw::MergedPara const*const pMerged(GetMergedPara()); if (pMerged) { - assert(pMerged->pFirstNode == pMerged->pParaPropsNode); // surprising news! +// assert(pMerged->pFirstNode == pMerged->pParaPropsNode); // surprising news! return pMerged->pParaPropsNode; } else |