diff options
author | Michael Meeks <michael.meeks@suse.com> | 2012-09-10 12:50:44 +0300 |
---|---|---|
committer | Tor Lillqvist <tml@iki.fi> | 2012-09-10 12:52:19 +0300 |
commit | 3234b715b5a6d13ee673b41066eb565706be5ec9 (patch) | |
tree | 5ac99e00956779df5191fc1c64db60955c77c4ad /vcl | |
parent | 26fd65c521fb4667f1be0365de4b391f61b80fdf (diff) |
fdo#47368: Fix for infinite recursion
See bug for discussion.
Change-Id: Id45dd2902bd2cb68618c3e7324867f226c025698
Diffstat (limited to 'vcl')
-rw-r--r-- | vcl/aqua/source/a11y/aqua11ywrapper.mm | 12 |
1 files changed, 3 insertions, 9 deletions
diff --git a/vcl/aqua/source/a11y/aqua11ywrapper.mm b/vcl/aqua/source/a11y/aqua11ywrapper.mm index 86bc720d8d4b..a7bad3cc9a55 100644 --- a/vcl/aqua/source/a11y/aqua11ywrapper.mm +++ b/vcl/aqua/source/a11y/aqua11ywrapper.mm @@ -970,15 +970,9 @@ Reference < XAccessibleContext > hitTestRunner ( com::sun::star::awt::Point poin com::sun::star::awt::Point location = rxAccessibleComponent -> getLocationOnScreen(); com::sun::star::awt::Point hitPoint ( point.X - location.X , point.Y - location.Y); Reference < XAccessible > rxAccessible = rxAccessibleComponent -> getAccessibleAtPoint ( hitPoint ); - if ( rxAccessible.is() && rxAccessible -> getAccessibleContext().is() ) { - if ( rxAccessible -> getAccessibleContext() -> getAccessibleChildCount() > 0 ) { - hitChild = hitTestRunner ( point, rxAccessible -> getAccessibleContext() ); - if ( ! hitChild.is() ) { - hitChild = rxAccessible -> getAccessibleContext(); - } - } else { - hitChild = rxAccessible -> getAccessibleContext(); - } + if ( rxAccessible.is() && rxAccessible -> getAccessibleContext().is() && + rxAccessible -> getAccessibleContext() -> getAccessibleChildCount() == 0 ) { + hitChild = rxAccessible -> getAccessibleContext(); } } if ( !hitChild.is() && rxAccessibleContext -> getAccessibleChildCount() > 0 ) { // special treatment for e.g. comboboxes |