Details
-
Bug
-
Resolution: Unresolved
-
P3: Somewhat important
-
None
-
6.6.3
-
Built on MacOS 14.4.1 with Xcode 15.3. Reproduced on iPad iOS 17.4.1, iPad iOS 15.7.3, iOS 17.4.1
Description
Possibly related to QTBUG-117387
See attached QML as minimal reproducer.
On iOS (and also Mac using multiple fingers on track pad), when there is an item spanning the whole window on top of all others that has a TapHandler with gesturePolicy: TapHandler.WithinBounds, it is possible to drag a ListView beneath it and for its delegate TapHandlers to receive tap events.
See the attached video for a demo. To reproduce:
- Tap the coloured rectangles to verify tapping on the ListView when there is no overlay.
- Tap the "Toggle overlay" button to switch on the overlay.
- Tap the coloured rectangles to verify tapping is exclusively on the overlay layer.
- Add 2 touch points at the same moment over the ListView.
- Drag up and down and you will be able to drag the ListView. This is the first thing that shouldn't be possible.
- While dragging, tap with a third touch point. This is tricky to achieve and you may need to go from step 5 again, but it sometimes results in a tap event going to the TapHandler delegate of the ListView.
While it appears to be rather tricky to reproduce this, I've witnessed it happening on my own app by accident, triggering events on the active scene that shouldn't be accessible while there is a modal dialog in use.
Given the versions at which QTBUG-117387 was fixed, I shall see if I can reproduce on more post-fix versions on iOS and MacOS. (I have seen it on Qt 6.5.3 on both platforms.)