Details
-
Bug
-
Resolution: Done
-
P2: Important
-
5.3.0
-
None
-
77d6aef4063a9bf18074609fc32d3ffeed88617c
Description
Filtered mouse release is not delivered if another touch started after a
touchMouseId was activated. This means that any filters expecting a
release event will not receive it if another touch is made before release
of the touchMouseId.
We prevent a touch becoming the touchMouseId in the child mouse filters
if there were any existing touches. The normal event delivery, however,
does not require a single touch.
Flickable delayed press should be sent via normal event processing, as other
touch/mouse events are now delivered in this way.
The childMouseEventFilter()s are called for mouse events even if the target
Item does not accept mouse presses.
We often call childMouseEventFilter() multiple times for each event. This
is bad because the gesture handling relies on claiming a gesture in one event,
then stealing it in the next.
PinchArea does not store the starting position at the original touch points,
so other items can pass the dragThreshold before PinchArea and steal a gesture
meant for PinchArea.
Attachments
For Gerrit Dashboard: QTBUG-40330 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
90301,4 | WIP: Fix touch/mouse propagation bugs | 5.3 | qt/qtdeclarative | Status: ABANDONED | 0 | 0 |
90626,2 | Fix touch/mouse propagation bugs | dev | qt/qtdeclarative | Status: MERGED | +2 | 0 |