summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Stahl <Michael.Stahl@cib.de>2019-05-16 15:21:18 +0200
committerLászló Németh <nemeth@numbertext.org>2019-08-01 09:43:10 +0200
commitbeec1594587d0bf1ea2268f9a435c948b5580278 (patch)
treeb78501cff07a20d87697a7198a6229295803f53e
parent4a5bb4c94037ba0461bc29f447ee919ebc2a4b86 (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.cxx3
-rw-r--r--sw/source/core/text/redlnitr.cxx10
-rw-r--r--sw/source/core/text/txtfrm.cxx4
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