diff options
author | Michael Weghorn <m.weghorn@posteo.de> | 2023-08-17 13:38:45 +0100 |
---|---|---|
committer | Michael Weghorn <m.weghorn@posteo.de> | 2023-08-18 06:05:32 +0200 |
commit | 581427c2d62f6bde5b843a1f89fea1914583b96a (patch) | |
tree | e9a0159442e45f1f3a2da852d76dea9dd7f12670 /accessibility | |
parent | 2cd1408dd7d6688357257f4a58a8b467628b1884 (diff) |
tdf#156561 a11y: Don't ignore child events in AccessibleListBox
Don't ignore the `WindowShow` and `WindowHide` child events
in `AccessibleListBox::ProcessWindowChildEvent`, but let the
base class implemenation handle them just like all other
child events.
This causes them to be forwarded as `AccessibleEventId::CHILD`
events to the a11y layer, which e.g. triggers registering
a11y event listeners for newly created/shown child objects
in winaccessibility.
This makes the announcement of sub menu entries in Calc's auto
filter work 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
, which will be done in a follow-up commit.
`AccessibleListBox` is the a11y class used for
tree views in the non-gtk case (i.e. `SalInstanceTreeView`).
A tree view is passed as the parent of the sub menus in
the autofilter popup (s. `ScCheckListMenuControl::addSubMenuItem`),
but due to ignoring the events, the submenu would not be
announced by NVDA before the above-mentioned commit.
The events were ignored since
commit 4c01898e02d7b80f70f19de12f2598644fc421e3
Author: Vladimir Glazounov <vg@openoffice.org>
Date: Mon Jan 28 13:14:03 2008 +0000
INTEGRATION: CWS tbe32 (1.2.16); FILE MERGED
2007/11/05 15:14:07 tbe 1.2.16.1: #i70908# [A11y] OOo crashes in Customize dialog - Add when large icons and A11y ONcommit 4c01898e02d7b80f70f19de12f2598644fc421e3
to fix a crash in the customization dialog,
but that problem described in [1] is no longer
reproducible for me with the change here
in place.
Comment 8 in the ticket mentions:
> The problem was the accessible child event, which was sent for the
> help text window. This event triggered some callbacks which caused
> the dead lock. As the help text window is not exposed as accessible
> child of the tree list box, I removed the accessible child event.
The fact that extra children from the `vcl::Window`
hierarchy (besides the entries in the `SvTreeListBox`
are currently not exposed via
`AccessibleListBox::getAccessibleChildCount` and
`AccessibleListBox::getAccessibleChild` is still
true, but not a problem in this context.
(If necessary, handling for those should be easy to
add by forwarding to the corresponding
`VCLXAccessibleComponent` methods, and adapting
the child index used as needed.)
[1] https://bz.apache.org/ooo/show_bug.cgi?id=70908
[2] https://bz.apache.org/ooo/show_bug.cgi?id=70908#c8
Change-Id: If374032387babf41b28067d5df54d5f6ce682c48
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155801
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Diffstat (limited to 'accessibility')
-rw-r--r-- | accessibility/inc/extended/accessiblelistbox.hxx | 1 | ||||
-rw-r--r-- | accessibility/source/extended/accessiblelistbox.cxx | 19 |
2 files changed, 0 insertions, 20 deletions
diff --git a/accessibility/inc/extended/accessiblelistbox.hxx b/accessibility/inc/extended/accessiblelistbox.hxx index ffb03ad6bd9f..5eeaf92d672c 100644 --- a/accessibility/inc/extended/accessiblelistbox.hxx +++ b/accessibility/inc/extended/accessiblelistbox.hxx @@ -52,7 +52,6 @@ namespace accessibility protected: // VCLXAccessibleComponent virtual void ProcessWindowEvent( const VclWindowEvent& rVclWindowEvent ) override; - virtual void ProcessWindowChildEvent( const VclWindowEvent& rVclWindowEvent ) override; virtual void FillAccessibleStateSet( sal_Int64& rStateSet ) override; private: diff --git a/accessibility/source/extended/accessiblelistbox.cxx b/accessibility/source/extended/accessiblelistbox.cxx index 5561fa232dfc..f0651f05354f 100644 --- a/accessibility/source/extended/accessiblelistbox.cxx +++ b/accessibility/source/extended/accessiblelistbox.cxx @@ -240,25 +240,6 @@ namespace accessibility } } - - void AccessibleListBox::ProcessWindowChildEvent( const VclWindowEvent& rVclWindowEvent ) - { - switch ( rVclWindowEvent.GetId() ) - { - case VclEventId::WindowShow: - case VclEventId::WindowHide: - { - } - break; - default: - { - VCLXAccessibleComponent::ProcessWindowChildEvent( rVclWindowEvent ); - } - break; - } - } - - // XComponent void SAL_CALL AccessibleListBox::disposing() |