vcl/source/window/dockmgr.cxx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
New commits: commit c379f1b978c3ad4578c130675c1e0a82c70823c0 Author: Michael Weghorn <m.wegh...@posteo.de> AuthorDate: Wed Mar 15 17:00:27 2023 +0100 Commit: Michael Weghorn <m.wegh...@posteo.de> CommitDate: Thu Mar 16 06:43:30 2023 +0000 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.wegh...@posteo.de> 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)