summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Weghorn <m.weghorn@posteo.de>2023-03-15 17:00:27 +0100
committerMichael Weghorn <m.weghorn@posteo.de>2023-03-16 06:43:30 +0000
commitc379f1b978c3ad4578c130675c1e0a82c70823c0 (patch)
tree12a330150405aec4e7e87c2a7e88bdb8889e7707
parent80d5d2eb70fd84e98cbe19cd4363d12d50ec31f6 (diff)
tdf#140762 tdf#152671 Make dock win visible before showing popup
The fact that the docking window got hidden (in `ImplPreparePopupMode`) and only shown again after starting popup mode for the containing floating window meant that the docking window and its children were still invisible when starting popup mode. Therefore, they would also not be considered/returned as accessible children when listeners are registered for accessible children in winaccessibility's `AccTopWindowListener::AddAllListeners`. As a consequence, no a11y events would be sent when they receive keyboard focus and they would not be announced by the NVDA screen reader. Make them visible again *before* starting popup mode for the floating window. This e.g. makes NVDA announce popups in the toolbar or the Calc autofilter dropdown. Change-Id: I6953e4b491db4708ba30fb98173d13391d6e0461 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/148933 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
-rw-r--r--vcl/source/window/dockmgr.cxx4
1 files changed, 2 insertions, 2 deletions
diff --git a/vcl/source/window/dockmgr.cxx b/vcl/source/window/dockmgr.cxx
index f836ff2f1cef..3ab98c596183 100644
--- a/vcl/source/window/dockmgr.cxx
+++ b/vcl/source/window/dockmgr.cxx
@@ -821,8 +821,8 @@ void ImplDockingWindowWrapper::StartPopupMode( ToolBox *pParentToolBox, FloatWin
if( pParentToolBox->IsKeyEvent() )
nFlags |= FloatWinPopupFlags::GrabFocus;
+ GetWindow()->Show(true, ShowFlags::NoFocusChange | ShowFlags::NoActivate);
mpFloatWin->StartPopupMode( pParentToolBox, nFlags );
- GetWindow()->Show();
if( pParentToolBox->IsKeyEvent() )
{
@@ -839,8 +839,8 @@ void ImplDockingWindowWrapper::StartPopupMode( const tools::Rectangle& rRect, Fl
return;
ImplPreparePopupMode();
+ GetWindow()->Show(true, ShowFlags::NoFocusChange | ShowFlags::NoActivate);
mpFloatWin->StartPopupMode( rRect, nFlags );
- GetWindow()->Show();
}
IMPL_LINK_NOARG(ImplDockingWindowWrapper, PopupModeEnd, FloatingWindow*, void)