One wheel notch in standalone did nothing with the overlay up: libinput reports discrete ticks scaled by WLR_POINTER_AXIS_DISCRETE_STEP (x120), so a single notch ran cycle_tab 120 times -- an even number of wraps on two tabs, netting zero visible movement while still swallowing the event. The standalone axis handler now divides by the macro before calling overlay_handle_axis; the client forward path stays raw since the wlroots seat divides it back itself. Nested was never affected (its discrete values already arrive in wire units). Proven by test_standalone_overlay_wheel_libinput_scale, which drives one notch through the real standalone handler via a new wltest --virtual-axis mode and asserts exactly one step (it fails with 120 steps without the fix). wltest also grows the missing axis_source/stop/discrete pointer handlers, without which libwayland aborts any test client forwarded a scroll event, plus axis lines in --pointer-out. |
||
|---|---|---|
| .. | ||
| test_fuzz.py | ||
| test_smoke.py | ||
| wltest.c | ||
| xclass.c | ||
| xdeco.c | ||
| xleader.c | ||
| xormenu.c | ||
| xpopup.c | ||
| xreqs.c | ||