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

MultiPointTouchArea inside Flickable: stealing doesn't release the MPTA's touchpoint

    XMLWordPrintable

Details

    Description

      When you put (something containing) a MouseArea inside a Flickable, then press on the MA and drag far enough to have the flickable become the mouse grabber, the MA.pressed is true after the press and then false after the Flickable becomes the grabber. In order for this to work, the MouseArea must be the grabber, so that it can be notified via a MouseUngrabEvent when it is no longer the grabber. This is what causes MA.pressed to be false. When you put a MultiPointTouchArea in a flickable, you would expect something similar to happen; but it doesn't. See the attached example, and run it on a touchscreen system of some kind: the MPTA pressed state stays true even after you are dragging the flickable.

      This problem makes it hard to handle touch events in MouseArea, which is what we need to do in order to be able to press multiple MouseAreas at the same time on multi-touch hardware: it will seem to be a bug that when MouseArea handles touch events, the grabbing/stealing behaviors are not the same as when it handles mouse events. You can press, drag, and release, and it will look like it's still pressed, indefinitely, until the next press/release cycle (without dragging).

      Attachments

        1. mpta-in-flickable.qml
          0.8 kB
          Shawn Rutledge

        Issue Links

          No reviews matched the request. Check your Options in the drop-down menu of this sections header.

          Activity

            People

              srutledg Shawn Rutledge
              srutledg Shawn Rutledge
              Votes:
              9 Vote for this issue
              Watchers:
              13 Start watching this issue

              Dates

                Created:
                Updated:

                Gerrit Reviews

                  There are no open Gerrit changes