elementary / gala

Gala Window Manager for elementary OS and Pantheon
https://elementary.io
GNU General Public License v3.0
274 stars 77 forks source link

Multi-touch gestures on touch screen don't track 1:1 #1272

Open cassidyjames opened 3 years ago

cassidyjames commented 3 years ago

What Happened?

When testing on a touch screen, I noticed the multi-touch gestures (e.g. for switching workspaces) don't track my fingers 1:1; instead they seem to track as if I was using a touchpad.

Note this may be an issue in Touchégg, but I thought I'd start here. @JoseExposito probably knows more. I can also upload a video when I can get to it if that would help demonstrate.

Steps to Reproduce

  1. Have a touch screen
  2. Three-finger swipe sideways on the touchscreen to switch workspace
  3. Watch how the workspace moves under your fingers faster than your fingers

Expected Behavior

Multi-touch gestures are 1:1 when using the touch screen

OS Version

6.x (Odin)

Software Version

Compiled from git

Log Output

No response

Hardware Info

Dell Precision 5530 with touch screen

JoseExposito commented 3 years ago

Touchégg doesn't have the context to perform this action (screen resolution, if we are on desktop or multitasking view, etc) so this needs to be implemented by Gala.

If I remember correctly, Mutter should be forwarding touch events even on X11, so we should be able to use Clutter for this (I'd need to check).

The current gesture tracker is in charge of touchpads and fallbacks to a touchpad-like experience for touchscreens. Mainly because I lacked the hardware when I implemented it... and also I lacked to knowledge to emulate one using uinput. This means that we'd need to refactor it a bit, but it should be pretty straightforward.