aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick/accessible/qaccessiblequickitem_p.h
diff options
context:
space:
mode:
authorJan Arve Saether <jan-arve.saether@digia.com>2014-09-10 13:10:19 +0200
committerJan Arve Sæther <jan-arve.saether@theqtcompany.com>2014-10-21 08:05:08 +0200
commitdb16f3e56e73846bc70eab08869dfb57706db2bf (patch)
tree88326bc82b0e38caad05126ae81ceae2a8539fbb /src/quick/accessible/qaccessiblequickitem_p.h
parentd6661ca409ebf1e4a2fa21fa4f084f63f70052e3 (diff)
Improve hit testing so that it works better with ignored items
The hit testing won't work very well with the upcoming patch that changes which items that can be ignored. (basically it doesn't consider the isAccessible flag, so childAt_helper might return a node that was supposed to be ignored) Earlier this was a sensible optimization in order to avoid too many heap allocations and deallocations of interfaces, but these are cheap now, so we can do it the do it the 'proper way' (i.e. before this patch we didn't respect the a11y hierarchy as given by QAccessibleInterface child() and parent(). This also uses the QAccessibleInterface::rect() directly now instead of using the itemScreenRect() function, which was shared between QAccessibleQuickWindow and QAccessibleQuickItem. Since this changes the order of child interfaces to paint order (i.e. second child interface is on top of first child interface), we need to ensure that we hit test child interfaces in the correct order. They should now always be processed with the last interface first, and then return as soon as something is hit. Change-Id: Ie951fc3b48b7affd9f7e98687a1cbbe008857d2a Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com>
Diffstat (limited to 'src/quick/accessible/qaccessiblequickitem_p.h')
-rw-r--r--src/quick/accessible/qaccessiblequickitem_p.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/quick/accessible/qaccessiblequickitem_p.h b/src/quick/accessible/qaccessiblequickitem_p.h
index 5cf120a802..84e82fff86 100644
--- a/src/quick/accessible/qaccessiblequickitem_p.h
+++ b/src/quick/accessible/qaccessiblequickitem_p.h
@@ -53,6 +53,7 @@ public:
QRect viewRect() const;
bool clipsChildren() const;
+ QAccessibleInterface *childAt(int x, int y) const;
QAccessibleInterface *parent() const;
QAccessibleInterface *child(int index) const;
@@ -118,6 +119,7 @@ private:
};
QRect itemScreenRect(QQuickItem *item);
+QList<QQuickItem *> accessibleUnignoredChildren(QQuickItem *item, bool paintOrder = false);
#endif // QT_NO_ACCESSIBILITY