xwayland: ignore non-discrete events from mouse wheels/wheel tilt

The code relied on the assumption that we never get multiple axis events for a
wheel before the first logical click (discrete non-zero) is reached. This
isn't the case (though effectively all mice behaved like this) and with
high-resolution wheels enabled, we end up scrolling for each fraction of a
wheel click, followed by a large click-scroll once the full click has been
reached.

This isn't immediately fixable without protocol updates, so for now change the
behaviour to look at the axis source - if we have a source of wheel and wheel
tilt, always handle the discrete event only and ignore any value events.

This has no effect on touchpad/continuous scrolling but breaks if the
compositor has a seat version >= 5 but does not send discrete events for mouse
wheels. It's unclear if such a compositor exists, but if needed, we can add
heuristics in the future to work around this.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2 jobs for wip/hi-res-scrolling in 2 minutes and 26 seconds
latest
Status Job ID Name Coverage
  Docker Image
passed #95819
debian-testing

00:00:41

 
  Build And Test
passed #95820
build-and-test

00:01:44