summaryrefslogtreecommitdiff
path: root/sw/source/core/layout/wsfrm.cxx
diff options
context:
space:
mode:
authorMichael Stahl <Michael.Stahl@cib.de>2018-10-05 18:50:53 +0200
committerMichael Stahl <Michael.Stahl@cib.de>2018-11-15 15:09:57 +0100
commit9933690d08667f410cdab34d4c698cf80f046a56 (patch)
treee9c846c1e7387598757c787be4655f8d5ea29649 /sw/source/core/layout/wsfrm.cxx
parenta12bb53c861c878b53602c455f42f2b7e60e3c26 (diff)
sw_redlinehide_3: stop SwAccessibleParagraph listening at SwTextNode
The SwAccessibleParagraph is a client of SwTextNode, just so that it can dispose its mpParaChangeTrackInfo on any and all editing operations. This won't work with merged paragraphs, but on the other hand it's not necessary with merged paragraphs because the initChangeTrackTextMarkupLists() does nothing if IsHideRedlines(). However there is the problem that the node and the frame might become mis-matched if the frame is "moved around", so to avoid problems due to that, listen on the SwTextFrame instead of the node, and have the SwTextFrame relay any events it gets. Though the frame is only SwClient, this is now possible thanks to the SfxBroadcaster on the SwFrame class, so convert to SfxListener; also the Accessible lifetime is tied to SwTextFrame anyway. In UnHideRedlines(), send a dummy event too so that toggling Show/Hide disposes the mpParaChangeTrackInfo too, which previously happened as a side effect of moving the redlines around in the nodes-array. Change-Id: I4e5a7107cb55d408266ee42463f9fa2a4a8b721b
Diffstat (limited to 'sw/source/core/layout/wsfrm.cxx')
-rw-r--r--sw/source/core/layout/wsfrm.cxx1
1 files changed, 1 insertions, 0 deletions
diff --git a/sw/source/core/layout/wsfrm.cxx b/sw/source/core/layout/wsfrm.cxx
index fa8c6be8254c..69f6b1185134 100644
--- a/sw/source/core/layout/wsfrm.cxx
+++ b/sw/source/core/layout/wsfrm.cxx
@@ -4340,6 +4340,7 @@ static void UnHideRedlines(SwRootFrame & rLayout,
pFrame->SetMergedPara(nullptr);
}
}
+ pFrame->Broadcast(SfxHint()); // notify SwAccessibleParagraph
}
}
if (!rNode.IsCreateFrameWhenHidingRedlines())