Commit 77d6aef4 authored by Martin Jones's avatar Martin Jones
Browse files

Fix touch/mouse propagation bugs


Filtered mouse release was not delivered if another touch started after a
touchMouseId was activated.  This meant that any filters expecting a
release event would not receive it if another touch was made before release
of the touchMouseId.

We prevented 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.

Further to the previous, a touch could become the touchMouseId, even if
the initial press happened when there was an existing touchMouseId. This
meant that a touch could turn into a mouse when the existing mouse event
was released, resulting in a new touchMouseId which hadn't been through
child mouse filters.

Flickable delayed press should be sent via normal event processing, as other
touch/mouse events are now delivered in this way.

We often called 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.

Instead of sending touch to mouse candidate points already determined to be
within the item bounds and already transformed, we sent all of the points
to the mouse recipient.

PinchArea did not store the starting position at the original touch points,
so other items could pass the dragThreshold before PinchArea and steal a gesture
meant for PinchArea.

Task-number: QTBUG-40330
Change-Id: Ic0009c176d3d1cb7cff0b5eda076a2c3ca864136
Reviewed-by: default avatarRobin Burchell <robin+qt@viroteck.net>
parent 54d32ff9
dev 5.10 5.11 5.12 5.12.1 5.12.10 5.12.11 5.12.12 5.12.2 5.12.3 5.12.4 5.12.5 5.12.6 5.12.7 5.12.8 5.12.9 5.13 5.13.0 5.13.1 5.13.2 5.14 5.14.0 5.14.1 5.14.2 5.15 5.15.0 5.15.1 5.15.2 5.4 5.5 5.6 5.7 5.8 5.9 5.9.8 6.0 6.0.0 6.1 6.1.0 6.1.1 6.1.2 6.1.3 6.2 6.2.0 6.2.1 6.2.2 wip/cmake wip/dbus wip/itemviews wip/nacl wip/new-backend wip/pointerhandler wip/propertycache-refactor wip/qquickdeliveryagent wip/scenegraphng wip/tizen wip/webassembly v5.15.0-alpha1 v5.14.1 v5.14.0 v5.14.0-rc2 v5.14.0-rc1 v5.14.0-beta3 v5.14.0-beta2 v5.14.0-beta1 v5.14.0-alpha1 v5.13.2 v5.13.1 v5.13.0 v5.13.0-rc3 v5.13.0-rc2 v5.13.0-rc1 v5.13.0-beta4 v5.13.0-beta3 v5.13.0-beta2 v5.13.0-beta1 v5.13.0-alpha1 v5.12.7 v5.12.6 v5.12.5 v5.12.4 v5.12.3 v5.12.2 v5.12.1 v5.12.0 v5.12.0-rc2 v5.12.0-rc1 v5.12.0-beta4 v5.12.0-beta3 v5.12.0-beta2 v5.12.0-beta1 v5.12.0-alpha1 v5.11.3 v5.11.2 v5.11.1 v5.11.0 v5.11.0-rc2 v5.11.0-rc1 v5.11.0-beta4 v5.11.0-beta3 v5.11.0-beta2 v5.11.0-beta1 v5.11.0-alpha1 v5.10.1 v5.10.0 v5.10.0-rc3 v5.10.0-rc2 v5.10.0-rc1 v5.10.0-beta4 v5.10.0-beta3 v5.10.0-beta2 v5.10.0-beta1 v5.10.0-alpha1 v5.9.9 v5.9.8 v5.9.7 v5.9.6 v5.9.5 v5.9.4 v5.9.3 v5.9.2 v5.9.1 v5.9.0 v5.9.0-rc2 v5.9.0-rc1 v5.9.0-beta4 v5.9.0-beta3 v5.9.0-beta2 v5.9.0-beta1 v5.9.0-alpha1 v5.8.0 v5.8.0-rc1 v5.8.0-beta1 v5.8.0-alpha1 v5.7.1 v5.7.0 v5.7.0-rc1 v5.7.0-beta1 v5.7.0-alpha1 v5.6.3 v5.6.2 v5.6.1 v5.6.1-1 v5.6.0 v5.6.0-rc1 v5.6.0-beta1 v5.6.0-alpha1 v5.5.1 v5.5.0 v5.5.0-rc1 v5.5.0-beta1 v5.5.0-alpha1 v5.4.2 v5.4.1 v5.4.0 v5.4.0-rc1 v5.4.0-beta1 v5.4.0-alpha1
No related merge requests found
Showing with 94 additions and 56 deletions
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment