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

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

            Activity

              People

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

                Dates

                Created:
                Updated:

                  Gerrit Reviews

                  There are no open Gerrit changes