summaryrefslogtreecommitdiff
path: root/vcl
diff options
context:
space:
mode:
authorMichael Meeks <michael.meeks@suse.com>2012-09-10 12:50:44 +0300
committerTor Lillqvist <tml@iki.fi>2012-09-10 12:52:19 +0300
commit3234b715b5a6d13ee673b41066eb565706be5ec9 (patch)
tree5ac99e00956779df5191fc1c64db60955c77c4ad /vcl
parent26fd65c521fb4667f1be0365de4b391f61b80fdf (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.mm12
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