diff options
author | Michael Stahl <Michael.Stahl@cib.de> | 2018-05-18 15:09:04 +0200 |
---|---|---|
committer | Michael Stahl <Michael.Stahl@cib.de> | 2018-06-08 21:51:29 +0200 |
commit | 4062af7a7e3cc2eb4a41c9f1cbba822302fe54a2 (patch) | |
tree | e8ccbda60ed2a8cb884bac059f9f1c78c893884c /sw/source/core/text/frmform.cxx | |
parent | d2c4a3051317aeb69449ea3024ba4d3da5aab0d4 (diff) |
sw_redlinehide: convert SwTextFrame::MakePos() which has...
... and odd LOKit notification loop that looks a bit unoptimised.
Change-Id: I9b510f1bc8c295bb9b871ce5cc6060dbd8b96bcb
Diffstat (limited to 'sw/source/core/text/frmform.cxx')
-rw-r--r-- | sw/source/core/text/frmform.cxx | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/sw/source/core/text/frmform.cxx b/sw/source/core/text/frmform.cxx index f6cb776baf15..40ed097b1200 100644 --- a/sw/source/core/text/frmform.cxx +++ b/sw/source/core/text/frmform.cxx @@ -351,14 +351,20 @@ void SwTextFrame::MakePos() // Inform LOK clients about change in position of redlines (if any) if(comphelper::LibreOfficeKit::isActive()) { - const SwTextNode& rTextNode = *GetTextNode(); - const SwRedlineTable& rTable = rTextNode.getIDocumentRedlineAccess().GetRedlineTable(); + SwTextNode const* pTextNode = GetTextNodeFirst(); + const SwRedlineTable& rTable = pTextNode->getIDocumentRedlineAccess().GetRedlineTable(); for (SwRedlineTable::size_type nRedlnPos = 0; nRedlnPos < rTable.size(); ++nRedlnPos) { SwRangeRedline* pRedln = rTable[nRedlnPos]; - if (rTextNode.GetIndex() == pRedln->GetPoint()->nNode.GetNode().GetIndex()) + if (pTextNode->GetIndex() == pRedln->GetPoint()->nNode.GetNode().GetIndex()) { pRedln->MaybeNotifyRedlinePositionModification(getFrameArea().Top()); + if (GetMergedPara() + && pRedln->GetType() == nsRedlineType_t::REDLINE_DELETE + && pRedln->GetPoint()->nNode != pRedln->GetMark()->nNode) + { + pTextNode = pRedln->End()->nNode.GetNode().GetTextNode(); + } } } } |