Pointer grabs can cause stuck touchpoints in gesture actions
If a widget adds a grab pointer grab on its button press event, like
ClutterGestureAction will not see the release event and the touchpoint will be considered to remain pressed. This can accidentally trigger actions that only rely on the number of touchpoints, but not on changes to their position, such as the
AppSwitchAction in gnome-shell. A simple way to reproduce this issue is to have multiple apps open, open the OSK and press a OSK-button 4 times without moving the cursor. As long as the 4th press has a slight delay (the long press timeout required for that gesture), this will trigger the action and switch to a different window. This can even be done without any touch-capable device.
One idea to fix this would be to introduce a
grabbed signal to
ClutterInputDevice and listen for those for active touchpoints in
ClutterGestureAction and remove them once a device got grabbed.