Details
-
Bug
-
Resolution: Unresolved
-
P2: Important
-
None
-
6.5.0
-
None
Description
See the attached project qmlthreefingerrelease.zip for a repro case. This example simulates a scrollable document area with a very limited version of marquee selection (click and drag down and right only). Whilst marquee selection is active, the Flickable's content should not move (using the interactive property).
On macOS when using a trackpad with three finger dragging enabled this works as expected a lot of the time. The marquee is shown during the drag and disappears when the drag completes. However it's possible to get into a state where the MouseArea no longer receives mouse release events. This results in the marquee getting stuck on screen.
I'm not entirely sure what triggers this, but I think it might occur when the three finger drag starts whilst momentum events are still coming from an input device following a scroll. The most reliable way I've found to reproduce it is to scroll all the way to the right and back to the left with big swipes on the trackpad and then very quickly starting the marquee drag. Once in this state all three finger drags will get stuck in the same way (i.e. there are no more release events in the MouseArea).
Note that I found it even easier to reproduce when using a magic mouse for the fast scroll left and right before performing a three finger drag on the trackpad. The magic mouse produces a lot of momentum events once a gesture completes which is why I suspect this might be relevant. It's still possible to reproduce with only a trackpad but it's harder to start the drag whilst it's still generating momentum events.
It is also worth noting that this has also been observed on some machines for all three finger drags regardless of any prior scrolling. It may be that this only occurs within QQuickWidgets, as used in this example. It also seems that setting Qt::WA_AcceptTouchEvents to false can fix it, though it's not clear why.