aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick/items/qquickwindow_p.h
diff options
context:
space:
mode:
authorShawn Rutledge <shawn.rutledge@qt.io>2017-08-23 12:55:00 +0200
committerShawn Rutledge <shawn.rutledge@qt.io>2017-08-24 09:52:23 +0000
commit780e11cf38a98cd32b6a5aa44dbb4cbf0f5d5ff8 (patch)
treecdb6b9c2afb9c00f4808d96bcedac53c48295839 /src/quick/items/qquickwindow_p.h
parent4003b9cf9c3998bbf6654c9eb808657b4d55568b (diff)
Restore filtering behavior
We cannot cull pairs from filteringParentItems ahead of time on the basis of not visiting the same parent twice, because we don't know which child will get the press event. Skipping parents which have already seen the event once MUST be done during event delivery, as it was done before 9b5fc80af28580e9672792dd511d876a93947882 But another behavior difference is that the same parent can filter twice, if it's filtering the same event on behalf of a different item. For example: ListView delegate: Rectangle MouseArea Text If you click on the text, the MouseArea can filter for the Text, then ListView filters for the Text. Nobody accepts. So we try to deliver to the MouseArea; and then ListView filters again, this time for the MouseArea. So we need to go back to interleaving regular delivery and parent-filtering to get back to the behavior we had in 5.9. It's not the same if we try to do all the parent-filtering first, and then all the regular delivery afterwards. Revises and reverts parts of 1b0c9b46ce13b0f9c533f18fb420ff10ad56e4f6 Done-with: Jan Arve Sæther Task-number: QTBUG-62412 Task-number: QTBUG-62549 Task-number: QTBUG-62628 Task-number: QTBUG-62631 Change-Id: Id0bf64cb54668cc0eecfba01746a00ed7ea0359f Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
Diffstat (limited to 'src/quick/items/qquickwindow_p.h')
-rw-r--r--src/quick/items/qquickwindow_p.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/quick/items/qquickwindow_p.h b/src/quick/items/qquickwindow_p.h
index 837ef11d25..36b2c57e5c 100644
--- a/src/quick/items/qquickwindow_p.h
+++ b/src/quick/items/qquickwindow_p.h
@@ -148,7 +148,7 @@ public:
static QMouseEvent *cloneMouseEvent(QMouseEvent *event, QPointF *transformedLocalPos = 0);
void deliverMouseEvent(QQuickPointerMouseEvent *pointerEvent);
bool sendFilteredMouseEvent(QQuickItem *, QQuickItem *, QEvent *, QSet<QQuickItem *> *);
- bool sendFilteredPointerEvent(QQuickPointerEvent *event, QQuickItem *receiver, QQuickItem **itemThatFiltered = 0);
+ bool sendFilteredPointerEvent(QQuickPointerEvent *event, QQuickItem *receiver);
#if QT_CONFIG(wheelevent)
bool deliverWheelEvent(QQuickItem *, QWheelEvent *);
#endif