aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/accessible
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/accessible')
-rw-r--r--src/plugins/accessible/quick/qaccessiblequickitem.cpp2
-rw-r--r--src/plugins/accessible/quick/qaccessiblequickview.cpp5
2 files changed, 6 insertions, 1 deletions
diff --git a/src/plugins/accessible/quick/qaccessiblequickitem.cpp b/src/plugins/accessible/quick/qaccessiblequickitem.cpp
index 6c13377b3f..45db9fa795 100644
--- a/src/plugins/accessible/quick/qaccessiblequickitem.cpp
+++ b/src/plugins/accessible/quick/qaccessiblequickitem.cpp
@@ -95,7 +95,7 @@ QAccessibleInterface *QAccessibleQuickItem::parent() const
// QQuickView::declarativeRoot. The former is the true root item,
// but is not a part of the accessibility tree. Check if we hit
// it here and return an interface for the scene instead.
- if (parent == canvas->rootItem()) {
+ if (canvas && (parent == canvas->rootItem())) {
return QAccessible::queryAccessibleInterface(canvas);
} else {
return QAccessible::queryAccessibleInterface(parent);
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();