summaryrefslogtreecommitdiff
path: root/sw/source/core/text/frmform.cxx
diff options
context:
space:
mode:
authorMichael Stahl <Michael.Stahl@cib.de>2018-05-18 15:09:04 +0200
committerMichael Stahl <Michael.Stahl@cib.de>2018-06-08 21:51:29 +0200
commit4062af7a7e3cc2eb4a41c9f1cbba822302fe54a2 (patch)
treee8ccbda60ed2a8cb884bac059f9f1c78c893884c /sw/source/core/text/frmform.cxx
parentd2c4a3051317aeb69449ea3024ba4d3da5aab0d4 (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.cxx12
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();
+ }
}
}
}