gdk3: interpolate touchpad gestures to screen refresh
TLDR
This MR solves the issue of jitter in animation based on touchpad gestures. See #2025 for details about the issue, and !1117 for a general description of the solution.
Depends on, and includes !1117
Fixes #2547
What it does
This MR adds the bits necessary for interpolating touchpad swipe and pinch gestures (GdkEvent
type GDK_TOUCHPAD_SWIPE
and GDK_TOUCHPAD_PINCH
) to the screen refresh.
More details
Users of GNOME Shell have to make sure the version that they use includes mutter!974 (merged). Please see !1117 for the full list or prerequisites.
To watch the sessions please save each video to your computer and view it locally using mpv (due to some reason GNOME's totem doesn't resize to video). If you view the recordings online, or with a video player incapable of displaying 60FPS, you might not be able to see the differences. Alternatively try to watch the videos in a full-screen mode.
To observe the issue try to follow the sides of the rectangle with your eyes while it moves.
The 'before' video is the current situation, which is relatively jittery. The 'after' video was taken after applying this MR. Both videos were taken by using the 'gestures' demo of the gtk3-demo.