summaryrefslogtreecommitdiff
path: root/sw/source/core/layout
diff options
context:
space:
mode:
authorMichael Stahl <Michael.Stahl@cib.de>2018-08-09 15:10:13 +0200
committerMichael Stahl <Michael.Stahl@cib.de>2018-09-19 10:18:24 +0200
commit0996bff80cb4f4f6803bce925f2df7a310317820 (patch)
tree8e3aaf6b38b37123ec984803310eac2ff8bf7761 /sw/source/core/layout
parentad067c367fbca9eb7a0f5c8adbe6be243950569e (diff)
sw_redlinehide_2: fix ordering of SplitNode usage of ContentIdxStore 2
The flys have their anchor positions updated, and that causes lookups from the layout frame to the anchor SwTextFrame, but that isn't updated yet; it looks like the fly restore must be done after adapting the SwTextFrames, while the redline restore must be done before. Also RegisterToNode must call Check only for the 1st node. Change-Id: If87a62108f1bcaf794e5be1cc38dc936f08cd69e
Diffstat (limited to 'sw/source/core/layout')
-rw-r--r--sw/source/core/layout/ssfrm.cxx9
1 files changed, 8 insertions, 1 deletions
diff --git a/sw/source/core/layout/ssfrm.cxx b/sw/source/core/layout/ssfrm.cxx
index abe62e8b3968..3a37ae92bc7f 100644
--- a/sw/source/core/layout/ssfrm.cxx
+++ b/sw/source/core/layout/ssfrm.cxx
@@ -443,8 +443,15 @@ SwContentFrame::~SwContentFrame()
void SwTextFrame::RegisterToNode(SwTextNode & rNode)
{
assert(&rNode != GetDep());
+ assert(!m_pMergedPara
+ || (m_pMergedPara->pFirstNode->GetIndex() < rNode.GetIndex())
+ || (rNode.GetIndex() + 1 == m_pMergedPara->pFirstNode->GetIndex()));
+ SwTextNode & rFirstNode(
+ (m_pMergedPara && m_pMergedPara->pFirstNode->GetIndex() < rNode.GetIndex())
+ ? *m_pMergedPara->pFirstNode
+ : rNode);
// sw_redlinehide: use New here, because the only caller also calls lcl_ChangeFootnoteRef
- m_pMergedPara = sw::CheckParaRedlineMerge(*this, rNode, sw::FrameMode::New);
+ m_pMergedPara = sw::CheckParaRedlineMerge(*this, rFirstNode, sw::FrameMode::New);
if (!m_pMergedPara)
{
rNode.Add(this);