diff options
author | Michael Weghorn <m.weghorn@posteo.de> | 2023-08-17 14:12:56 +0100 |
---|---|---|
committer | Michael Weghorn <m.weghorn@posteo.de> | 2023-08-18 06:05:40 +0200 |
commit | e8028cbc11661effbb38ecb6146b9a9557b650da (patch) | |
tree | debc151e0b38c9ab9eb55d672690f278f77899de /svtools | |
parent | 581427c2d62f6bde5b843a1f89fea1914583b96a (diff) |
tdf#156561 svtools, a11y: Return created popup win for focus handling
Actually return the popup window created in
`PopupWindowController::createPopupWindow` instead of just
an empty reference.
With this in place, the popup window is initially announced
by NVDA on Windows for the "Borders" toolbar item when expanded
even after reverting
commit dc0706cabfe39ddb6ea23d60ccfb756f2b9e6efb
Author: Michael Weghorn <m.weghorn@posteo.de>
Date: Wed Mar 15 17:00:27 2023 +0100
tdf#140762 tdf#152671 Make dock win visible before showing popup
, because the focus event is now sent when focus is
set via `XWindow::setFocus` in
`framework::ToolBarManager::OnDropdownClick`
(s. frame 41 below), while the above commit previously
ensured that the window was already visible earlier and
thus the corresponding event would be
sent earlier already.
Related backtrace for the winaccessibility case:
1 AccObjectWinManager::NotifyAccEvent AccObjectWinManager.cxx 185 0x7fffaac46118
2 AccComponentEventListener::FireStateFocusedChange AccComponentEventListener.cxx 308 0x7fffaac4fddb
3 AccComponentEventListener::SetComponentState AccComponentEventListener.cxx 171 0x7fffaac50c14
4 AccEventListener::HandleStateChangedEvent AccEventListener.cxx 166 0x7fffaac4ea44
5 AccEventListener::notifyEvent AccEventListener.cxx 72 0x7fffaac4faaa
6 AccComponentEventListener::notifyEvent AccComponentEventListener.cxx 82 0x7fffaac5123c
7 AccDescendantManagerEventListener::notifyEvent AccDescendantManagerEventListener.cxx 70 0x7fffaac56686
8 AccListEventListener::notifyEvent AccListEventListener.cxx 66 0x7fffaac56ca2
9 ValueSetAcc::FireAccessibleEvent valueacc.cxx 430 0x7fffbad4578d
10 ValueSetAcc::GetFocus valueacc.cxx 452 0x7fffbad458ed
11 ValueSet::GetFocus valueset.cxx 271 0x7fffbad4f6b8
12 weld::CustomWeld::DoGetFocus customweld.cxx 72 0x7fffaf12b2ed
13 weld::CustomWeld::LinkStubDoGetFocus customweld.cxx 72 0x7fffaf12b726
14 Link<weld::Widget &,void>::Call link.hxx 111 0x7fffaf16be63
15 SalInstanceWidget::HandleEventListener salvtables.cxx 736 0x7fffaf16f436
16 SalInstanceDrawingArea::HandleEventListener salvtables.cxx 6167 0x7fffaf16f3c7
17 SalInstanceWidget::EventListener salvtables.cxx 824 0x7fffaf16e805
18 SalInstanceWidget::LinkStubEventListener salvtables.cxx 821 0x7fffaf170b86
19 Link<VclWindowEvent &,void>::Call link.hxx 111 0x7fffaea625c3
20 vcl::Window::CallEventListeners event.cxx 263 0x7fffaea62970
21 vcl::Window::PreNotify event.cxx 71 0x7fffaea649a3
22 vcl::Window::CompatPreNotify window.cxx 3921 0x7fffaeb730e8
23 ImplCallPreNotify winproc.cxx 70 0x7fffaeb8eb00
24 vcl::Window::ImplGrabFocus mouse.cxx 383 0x7fffaeacff8c
25 vcl::Window::ImplControlFocus dlgctrl.cxx 560 0x7fffaea391b6
26 vcl::Window::EventNotify event.cxx 210 0x7fffaea633a5
27 DockingWindow::EventNotify dockwin.cxx 528 0x7fffaea58d21
28 vcl::Window::CompatNotify window.cxx 3929 0x7fffaeb73058
29 vcl::Window::GetFocus window.cxx 1852 0x7fffaeb75e94
30 InterimToolbarPopup::GetFocus toolbarmenu.cxx 187 0x7fffbad41eed
31 vcl::Window::CompatGetFocus window.cxx 3889 0x7fffaeb72f3d
32 vcl::Window::ImplGrabFocus mouse.cxx 385 0x7fffaeacffde
33 vcl::Window::GrabFocus window.cxx 2980 0x7fffaeb770ee
34 vcl::Window::ImplGrabFocus mouse.cxx 223 0x7fffaeacf4bb
35 vcl::Window::GrabFocus window.cxx 2980 0x7fffaeb770ee
36 FloatingWindow::StartPopupMode floatwin.cxx 845 0x7fffaea6dd90
37 FloatingWindow::StartPopupMode floatwin.cxx 880 0x7fffaea6e076
38 ImplDockingWindowWrapper::StartPopupMode dockmgr.cxx 840 0x7fffaea543ae
39 DockingManager::StartPopupMode dockmgr.cxx 349 0x7fffaea54131
40 svt::PopupWindowController::createPopupWindow popupwindowcontroller.cxx 240 0x7fffbae3648a
41 framework::ToolBarManager::OnDropdownClick toolbarmanager.cxx 1772 0x7fffbc461a0c
42 framework::ToolBarManager::DropdownClick toolbarmanager.cxx 1752 0x7fffbc45c4d3
43 framework::ToolBarManager::LinkStubDropdownClick toolbarmanager.cxx 1749 0x7fffbc460026
44 Link<ToolBox *,void>::Call link.hxx 111 0x7fffaeb33e23
45 ToolBox::ImplOpenItem toolbox.cxx 4270 0x7fffaeb5277c
46 ToolBox::KeyInput toolbox.cxx 4415 0x7fffaeb5357b
47 ImplHandleKey winproc.cxx 1212 0x7fffaeb90b5e
48 ImplWindowFrameProc winproc.cxx 2724 0x7fffaeb9793e
49 SalFrame::CallCallback salframe.hxx 310 0x7fffae93a3f6
50 ImplHandleKeyMsg salframe.cxx 3752 0x7fffab04568b
51 SalFrameWndProc salframe.cxx 5723 0x7fffab04c689
52 SalFrameWndProcW salframe.cxx 6043 0x7fffab04d360
53 CallWindowProcW USER32 0x7ff8126be858
54 DispatchMessageW USER32 0x7ff8126be299
55 ImplSalDispatchMessage salinst.cxx 474 0x7fffaafa01d8
56 ImplSalYield salinst.cxx 551 0x7fffaafa08fd
57 WinSalInstance::DoYield salinst.cxx 580 0x7fffaaf9fe01
58 ImplYield svapp.cxx 352 0x7fffaf1d513d
59 Application::Yield svapp.cxx 437 0x7fffaf1d9092
60 Application::Execute svapp.cxx 330 0x7fffaf1d247a
61 desktop::Desktop::Main app.cxx 1601 0x7fffbd5c96b2
62 ImplSVMain svmain.cxx 204 0x7fffaf1ea8bc
63 SVMain svmain.cxx 237 0x7fffaf1eb122
64 soffice_main sofficemain.cxx 94 0x7fffbd618222
65 sal_main main.c 51 0x7ff6751e1013
66 main main.c 49 0x7ff6751e105a
67 invoke_main exe_common.inl 79 0x7ff6751e1459
68 __scrt_common_main_seh exe_common.inl 288 0x7ff6751e137e
69 __scrt_common_main exe_common.inl 331 0x7ff6751e123e
70 mainCRTStartup exe_main.cpp 17 0x7ff6751e14ce
71 BaseThreadInitThunk KERNEL32 0x7ff810cd7614
72 RtlUserThreadStart ntdll 0x7ff8128e26b1
With this and all the previous tdf#156561-related commits, the
above mentioned commit is no longer necessary for
NVDA to announce the auto filter popup in Calc (tdf#152671)
and many toolbar popups like the "Boders" toolbar item in
Calc (tdf#140762) and will therefore be reverted in a
follow-up commit.
Change-Id: Ifbe27de01739103d1da04951475db32aa50d429d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155802
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Diffstat (limited to 'svtools')
-rw-r--r-- | svtools/source/uno/popupwindowcontroller.cxx | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/svtools/source/uno/popupwindowcontroller.cxx b/svtools/source/uno/popupwindowcontroller.cxx index 41c8510c5f04..63326fcf570a 100644 --- a/svtools/source/uno/popupwindowcontroller.cxx +++ b/svtools/source/uno/popupwindowcontroller.cxx @@ -238,6 +238,7 @@ Reference< awt::XWindow > SAL_CALL PopupWindowController::createPopupWindow() pWin->EnableDocking(); mxImpl->SetPopupWindow(pWin,pToolBox); vcl::Window::GetDockingManager()->StartPopupMode( pToolBox, pWin, eFloatFlags ); + return VCLUnoHelper::GetInterface(pWin.get()); } } return Reference< awt::XWindow >(); |