Details
-
Bug
-
Resolution: Unresolved
-
P2: Important
-
None
-
5.9.1
-
None
-
RedHat EL7
X11
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
- relates to
-
QTBUG-68970 Bad mouse move event
- Reported
- resulted from
-
QTBUG-40856 MouseArea containsMouse flag is not reset on Touch Screen
- Open
Gerrit Reviews
For Gerrit Dashboard: QTBUG-61938 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
488452,4 | Skip inf lastCursorPosition synth-mouse-move; use existing QEvPoint | dev | qt/qtdeclarative | Status: NEW | -1 | 0 |
488455,3 | Revert "Fix containsMouse with touch and hoverEnabled" | dev | qt/qtdeclarative | Status: NEW | +2 | 0 |