summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Stahl <mstahl@redhat.com>2016-12-01 22:56:21 +0100
committerMichael Stahl <mstahl@redhat.com>2016-12-01 23:29:48 +0100
commit002c1f7223a0363f848d37062a0043d63255ad94 (patch)
tree099d790fb67afeb51cd25514a491f389870bbc3e
parent745fe08e187ef623486b54e3036075748e789339 (diff)
tdf#101464 fix SwAccessibleMap::mpEvents assertions switching PrintPreview
The problem here is that when switching to the print preview, there are 2 view shells, SwEditShell::UpdateTable() is called and the first one does some layouting in ImplEndAction(); this creates a11y events for the 2nd print preview one (see loops in SwViewShellImp::Invalidate*) and stores them in the SwAccessibleMap since there is an Action going on; then SwViewShell::ImplEndAction() for the print preview shell is called but it returns early without sending out the events, so they remain until the ~SwAccessibleMap asserts about them. Change-Id: Ie1c6b82fc5f2cdb2998d514a632295ad07e97517
-rw-r--r--sw/source/core/view/viewsh.cxx6
1 files changed, 6 insertions, 0 deletions
diff --git a/sw/source/core/view/viewsh.cxx b/sw/source/core/view/viewsh.cxx
index 83a58afc203b..2d362a24a313 100644
--- a/sw/source/core/view/viewsh.cxx
+++ b/sw/source/core/view/viewsh.cxx
@@ -235,6 +235,12 @@ void SwViewShell::ImplEndAction( const bool bIdleEnd )
{
mbPaintWorks = true;
UISizeNotify();
+ // tdf#101464 print preview may generate events if another view shell
+ // performs layout...
+ if (IsPreview() && Imp()->IsAccessible())
+ {
+ Imp()->FireAccessibleEvents();
+ }
return;
}