Skip to content

doc: guarantee end sequence for continuous scroll

GTK handles LIBINPUT_EVENT_POINTER_SCROLL_CONTINUOUS as GDK_SCROLL_SMOOTH, the same event type that is used to handle LIBINPUT_EVENT_POINTER_SCROLL_CONTINUOUS.

Because Mutter and other compositors, like wlroots based compositors, translate libinput terminating events to axis_stop instead of doing their own emulation, if libinput stops sending terminating events, it will cause client bugs.

Since libinput always sends the terminating event for trackpoints and button scrolling and there are even tests in place to check for them, update the documentation to guarantee the terminating scroll sequence.


@whot I couldn't find a case where the terminating event wasn't send for LIBINPUT_EVENT_POINTER_SCROLL_CONTINUOUS, but you know the codebase way better than me, so I'd appreciate your input here.

The reason of updating this is that @exalm is working on a patch to split GtkEventControllerScroll in a new type of GtkGesture for LIBINPUT_EVENT_POINTER_SCROLL_FINGER/CONTINUOUS and a wheel controller for LIBINPUT_EVENT_POINTER_SCROLL_WHEEL.

During a conversation about this topic we realized that GTK relies on terminating scroll sequences when handling LIBINPUT_EVENT_POINTER_SCROLL_CONTINUOUS and, since (I think) it's just the docs, it's easier to update them rather than implement axis_stop emulation in Mutter.

Merge request reports