vcl/source/window/dockmgr.cxx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
New commits: commit dc0706cabfe39ddb6ea23d60ccfb756f2b9e6efb Author: Michael Weghorn <m.wegh...@posteo.de> AuthorDate: Wed Mar 15 17:00:27 2023 +0100 Commit: Caolán McNamara <caol...@redhat.com> CommitDate: Wed Mar 22 13:13:10 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> (cherry picked from commit c379f1b978c3ad4578c130675c1e0a82c70823c0) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/148958 Reviewed-by: Caolán McNamara <caol...@redhat.com> 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)