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

[regression] Mouse Move Event Generated on Touch Release

    XMLWordPrintable

Details

    Description

      When QQuickWindow is translating touch events into mouse events it generates an extra mouse move event after a release when using acceptHoverEvents. I'm not sure why this extra move is necessary, but it tripped up code on a project I was working on. This code worked fine in Qt 5.5.1, but failed in 5.6+. There is no extra event generated in 5.5.1. I have a work around in the app. There is a test program attached to this bug report.

      Run the test app and press/release on the window with a touch. You will see roughly Press, Move, Move, Release, Move.

      The source of the extra mouse move event is line 725 of qquickwindow.cpp. http://code.qt.io/cgit/qt/qtdeclarative.git/tree/src/quick/items/qquickwindow.cpp?h=v5.9.1

      The move event is odd in couple of ways.

      1) It results in a NoButton move event from a touch.

      2) The pos of the move is QGuiApplicationPrivate::lastCursorPosition which isn't updated by the touch events. This causes the extra move to often be way off the item if the mouse was last in another part of the screen. A NoButton move shouldn't happen "off the item" even with hover accepted.

      3) This move is only generated when hover is accepted, but here are no hover in/out events generated.

      Why does QQuickWindow generate this extra move event?

      Attachments

        Issue Links

          For Gerrit Dashboard: QTBUG-61938
          # Subject Branch Project Status CR V

          Activity

            People

              srutledg Shawn Rutledge
              justinnoel Justin Noel
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:

                Gerrit Reviews