aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins
diff options
context:
space:
mode:
authorMorten Johan Sorvig <morten.sorvig@nokia.com>2012-01-19 08:02:09 +0100
committerQt by Nokia <qt-info@nokia.com>2012-03-12 21:20:31 +0100
commit6b87a9cfe51f7ad4e12aca59fdcb0ed242e47e90 (patch)
tree19d5f279be54fe49013950281cc3e7ecff6e8444 /src/plugins
parent16e29f30e3483568a36dba7b37520ea1645d9a2e (diff)
Accessibility: childAt_helper descends too far.
Recursive hit-testing using childAt_helper must stop when it hits a leaf accessibility item. This leaf item might not be a leaf item in Qt Quick - a button contains text and mouse area items not visible to the accessibility system for example. Get the accessible interface and check if it has children before recursing to the child items. Change-Id: I2cc286cde4bce6b4ca340e8a1819edc5f84006a5 Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com> Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
Diffstat (limited to 'src/plugins')
-rw-r--r--src/plugins/accessible/quick/qaccessiblequickview.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/plugins/accessible/quick/qaccessiblequickview.cpp b/src/plugins/accessible/quick/qaccessiblequickview.cpp
index 042d8dcf06..1823dfea42 100644
--- a/src/plugins/accessible/quick/qaccessiblequickview.cpp
+++ b/src/plugins/accessible/quick/qaccessiblequickview.cpp
@@ -119,6 +119,11 @@ static QQuickItem *childAt_helper(QQuickItem *item, int x, int y)
return 0;
}
+ QScopedPointer<QAccessibleInterface> accessibleInterface(QAccessible::queryAccessibleInterface(item));
+ if (accessibleInterface->childCount() == 0) {
+ return (itemScreenRect(item).contains(x, y)) ? item : 0;
+ }
+
QQuickItemPrivate *itemPrivate = QQuickItemPrivate::get(item);
QList<QQuickItem *> children = itemPrivate->paintOrderChildItems();