Details
-
Bug
-
Resolution: Done
-
P2: Important
-
None
-
5.6.0
-
TouchScreen, MouseEventSynthesizedByQt
Description
if a modal dialog gets open while the user has not yet released their touch, then the very first TouchBegin on the dialog would not be translated to a MousePressButton.
It happens when a TouchCancel is dispatched to the application instead of a TouchEnd. But because the TouchEnd is not even locally passed to processMouseEvent in qguiapplication.cpp and a fake mouse event is not going to be created, the associated QT internal flags like "buttons" (again in qguiapplication.cpp) don't get cleared properly. This prevents the next TouchBegin from being translated to a synthesized mouse event in function processMouseEvent as there the mouse state (stateChange) would not show any changes then.
I'll attach a patch which demonstrates the easiest and the least intrusive way of fixing this problem. The proposed change is just a reset of "buttons" in the right place.
Attachments
Issue Links
- relates to
-
QTBUG-57292 [eglfs/wayland] touch/click outside of the parent dialog doesn't close popup, not like in Desktop or Qt 4.8
-
- Closed
-
-
QTBUG-60516 Missing a mouse release and a mouse press event after multi-touching QGraphicsView
-
- Closed
-
For Gerrit Dashboard: QTBUG-57465 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
195152,13 | touch: use enhanced mouse event when synthesizing mouse | dev | qt/qtbase | Status: MERGED | +2 | 0 |
204499,7 | touch: use enhanced mouse event when synthesizing mouse | 5.9 | qt/qtbase | Status: ABANDONED | 0 | 0 |