diff options
Diffstat (limited to 'src/quick/items/qquickwindow.cpp')
-rw-r--r-- | src/quick/items/qquickwindow.cpp | 6 |
1 files changed, 4 insertions, 2 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); |