Skip to content

gdk3: interpolate touchpad gestures to screen refresh

Yariv requested to merge yarivb/gtk:gdk-3-touchpad-interpolation into gtk-3-24

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.

Pinch before:

pinch_jitter

Pinch after:

pinch_smooth

Edited by Yariv

Merge request reports