Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-125904

QML TapHandler with exclusive grab allows events to ListView beneath

    XMLWordPrintable

Details

    • iOS/tvOS/watchOS

    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:

      1. Tap the coloured rectangles to verify tapping on the ListView when there is no overlay.
      2. Tap the "Toggle overlay" button to switch on the overlay.
      3. Tap the coloured rectangles to verify tapping is exclusively on the overlay layer.
      4. Add 2 touch points at the same moment over the ListView.
      5. Drag up and down and you will be able to drag the ListView. This is the first thing that shouldn't be possible.
      6. 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.)

      Attachments

        1. iPadScreenCapture.mp4
          626 kB
        2. Main.qml
          2 kB
        3. Main2.qml
          2 kB
        4. TrackPadCanTapItemBeneath.mp4
          1.04 MB
        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            qt.team.quick.subscriptions Qt Quick and Widgets Team
            paulmasri Paul
            Votes:
            1 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:

              Gerrit Reviews

                There are no open Gerrit changes