aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/quick/items/qquickwindow.cpp6
-rw-r--r--tests/auto/quick/pointerhandlers/flickableinterop/BLACKLIST4
2 files changed, 4 insertions, 6 deletions
diff --git a/src/quick/items/qquickwindow.cpp b/src/quick/items/qquickwindow.cpp
index 54320d1e4b..3a2bcb107a 100644
--- a/src/quick/items/qquickwindow.cpp
+++ b/src/quick/items/qquickwindow.cpp
@@ -2831,8 +2831,10 @@ void QQuickWindowPrivate::deliverUpdatedPoints(QPointerEvent *event)
if (!event->allPointsGrabbed()) {
QVector<QQuickItem *> targetItems;
for (auto &point : event->points()) {
- if (point.state() == QEventPoint::Pressed)
- continue; // presses were delivered earlier; not the responsibility of deliverUpdatedTouchPoints
+ // Presses were delivered earlier; not the responsibility of deliverUpdatedTouchPoints.
+ // Don't find handlers for points that are already grabbed by an Item (such as Flickable).
+ if (point.state() == QEventPoint::Pressed || qmlobject_cast<QQuickItem *>(event->exclusiveGrabber(point)))
+ continue;
QVector<QQuickItem *> targetItemsForPoint = pointerTargets(contentItem, event, point, false, false);
if (targetItems.count()) {
targetItems = mergePointerTargets(targetItems, targetItemsForPoint);
diff --git a/tests/auto/quick/pointerhandlers/flickableinterop/BLACKLIST b/tests/auto/quick/pointerhandlers/flickableinterop/BLACKLIST
index a992fbf137..47c11f14d8 100644
--- a/tests/auto/quick/pointerhandlers/flickableinterop/BLACKLIST
+++ b/tests/auto/quick/pointerhandlers/flickableinterop/BLACKLIST
@@ -9,7 +9,3 @@ windows gcc
macos # QTBUG-86729
[touchDragSliderAndFlickable]
* # QTBUG-86729
-[touchAndDragHandlerOnFlickable]
-* # QTBUG-86729
-[dragHandlerInSiblingStealingGrabFromMouseAreaViaTouch]
-* # QTBUG-86729