diff options
Diffstat (limited to 'src/plugins/accessible')
-rw-r--r-- | src/plugins/accessible/quick/qaccessiblequickitem.cpp | 2 | ||||
-rw-r--r-- | src/plugins/accessible/quick/qaccessiblequickview.cpp | 5 |
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(); |