diff options
author | Caolán McNamara <caolanm@redhat.com> | 2018-12-04 13:01:14 +0000 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2018-12-04 17:48:13 +0100 |
commit | f62a0d9fbc4e67de134e4166410f3b63ea442993 (patch) | |
tree | 119729f34a037728ea1c60598640f8daed4c1438 | |
parent | 7f64ec49425d967512b8f8ca95e6328795133fd8 (diff) |
tdf#121855 like osx case don't search near-infinite calc grid for focus
Change-Id: Ie6bccd2781fbbdc5f4d5dc2eb6903191aafe8265
Reviewed-on: https://gerrit.libreoffice.org/64519
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
-rw-r--r-- | vcl/osx/a11ywrapper.mm | 2 | ||||
-rw-r--r-- | vcl/unx/gtk/gtksalframe.cxx | 7 | ||||
-rw-r--r-- | vcl/unx/gtk3/gtk3gtkframe.cxx | 7 |
3 files changed, 15 insertions, 1 deletions
diff --git a/vcl/osx/a11ywrapper.mm b/vcl/osx/a11ywrapper.mm index 485212a72ded..e24b83e5e2c0 100644 --- a/vcl/osx/a11ywrapper.mm +++ b/vcl/osx/a11ywrapper.mm @@ -995,7 +995,7 @@ static Reference < XAccessibleContext > hitTestRunner ( css::awt::Point point, bool bSafeToIterate = true; sal_Int32 nCount = rxAccessibleContext -> getAccessibleChildCount(); - if ( nCount < 0 || nCount > SAL_MAX_UINT16 /* slow enough for anyone */ ) + if (nCount < 0 || nCount > SAL_MAX_UINT16 /* slow enough for anyone */) bSafeToIterate = false; else { // manages descendants is an horror from the a11y standards guys. Reference< XAccessibleStateSet > xStateSet; diff --git a/vcl/unx/gtk/gtksalframe.cxx b/vcl/unx/gtk/gtksalframe.cxx index 899f1a1a291f..a4e6e0fdcd2d 100644 --- a/vcl/unx/gtk/gtksalframe.cxx +++ b/vcl/unx/gtk/gtksalframe.cxx @@ -3660,6 +3660,13 @@ static uno::Reference<accessibility::XAccessibleEditableText> } } + bool bSafeToIterate = true; + sal_Int32 nCount = xContext->getAccessibleChildCount(); + if (nCount < 0 || nCount > SAL_MAX_UINT16 /* slow enough for anyone */) + bSafeToIterate = false; + if (!bSafeToIterate) + return uno::Reference< accessibility::XAccessibleEditableText >(); + for (sal_Int32 i = 0; i < xContext->getAccessibleChildCount(); ++i) { uno::Reference< accessibility::XAccessible > xChild = xContext->getAccessibleChild(i); diff --git a/vcl/unx/gtk3/gtk3gtkframe.cxx b/vcl/unx/gtk3/gtk3gtkframe.cxx index d2d38b58f23c..091f4d2d3b3f 100644 --- a/vcl/unx/gtk3/gtk3gtkframe.cxx +++ b/vcl/unx/gtk3/gtk3gtkframe.cxx @@ -4214,6 +4214,13 @@ static uno::Reference<accessibility::XAccessibleEditableText> } } + bool bSafeToIterate = true; + sal_Int32 nCount = xContext->getAccessibleChildCount(); + if (nCount < 0 || nCount > SAL_MAX_UINT16 /* slow enough for anyone */) + bSafeToIterate = false; + if (!bSafeToIterate) + return uno::Reference< accessibility::XAccessibleEditableText >(); + for (sal_Int32 i = 0; i < xContext->getAccessibleChildCount(); ++i) { uno::Reference< accessibility::XAccessible > xChild = xContext->getAccessibleChild(i); |