No way to know when a scroll has slowed to a stop
Libinput does not give any indication that scrolling has slowed to a stop without ending. Say a user generates a string of deltas (10, 6, 4, 2.) There is no way to know that the user ended up slowing to a stop after that without trying to guess that's what they intended. Since timing of events is never guaranteed, there's no way to know that the user didn't intend the gesture to keep going at a velocity of 2/tick and events are just getting backed up. I'd propose sending a minimum of one zero-delta event after any string of non-zero-delta events if the user slows to a velocity below a detectable delta/below the hysterisis threshold.
This turned up while trying to implement scroll interpolation/extrapolation for libscroll.
Same as summary, any tick after a string of dispatched pan events should then dispatch a zero-delta event to indicate the user is still scrolling/interacting with the surface but isn't actively moving their fingers.
Mainly trackpads, though high precision mouse wheels would also benefit.
Implementation in Other Systems
Need to research further, not familiar enough with how OSX/Windows handle this case, My reading of https://github.com/SFML/SFML/issues/95 is that precision drivers do dispatch zero delta events but perhaps unintentionally.