diff options
author | Michael Stahl <Michael.Stahl@cib.de> | 2018-08-09 15:10:13 +0200 |
---|---|---|
committer | Michael Stahl <Michael.Stahl@cib.de> | 2018-09-19 10:18:24 +0200 |
commit | 0996bff80cb4f4f6803bce925f2df7a310317820 (patch) | |
tree | 8e3aaf6b38b37123ec984803310eac2ff8bf7761 /sw/source/core/layout | |
parent | ad067c367fbca9eb7a0f5c8adbe6be243950569e (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.cxx | 9 |
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); |