summaryrefslogtreecommitdiff
path: root/vcl
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2018-12-04 13:01:14 +0000
committerCaolán McNamara <caolanm@redhat.com>2018-12-04 17:48:13 +0100
commitf62a0d9fbc4e67de134e4166410f3b63ea442993 (patch)
tree119729f34a037728ea1c60598640f8daed4c1438 /vcl
parent7f64ec49425d967512b8f8ca95e6328795133fd8 (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>
Diffstat (limited to 'vcl')
-rw-r--r--vcl/osx/a11ywrapper.mm2
-rw-r--r--vcl/unx/gtk/gtksalframe.cxx7
-rw-r--r--vcl/unx/gtk3/gtk3gtkframe.cxx7
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);