diff options
| author | Gabriel Schneider <[email protected]> | 2026-07-31 03:15:28 -0300 |
|---|---|---|
| committer | Gabriel Schneider <[email protected]> | 2026-08-01 15:02:08 -0300 |
| commit | 6cd33661064df4163f3bd98db432526ad2165b7f (patch) | |
| tree | 6d3cffe1f59eb6b5df8193ddd9c092f781f0979f /src/gui | |
| parent | f2b8a25d0a25df778bce57efa4c2c7282c71893b (diff) | |
| download | pardes-6cd33661064df4163f3bd98db432526ad2165b7f.tar.gz pardes-6cd33661064df4163f3bd98db432526ad2165b7f.zip | |
a mostly-vertical touchpad swipe stays vertical
The pad faithfully turns a two-finger scroll's sideways drift into wheel_left
and wheel_right, so a plain scroll slid the view sideways underneath you. Every
vertical tick now re-arms a guard and every horizontal tick spends one instead
of scrolling, so horizontal has to EARN its way back by landing three ticks in
a row with no vertical among them.
Clock-free on purpose: the core is a state machine with no timestamp on a mouse
event, and faking one by counting renders would be worse than the counter. The
guard is only ever armed BY vertical scrolling, so a horizontal swipe from a
still view still moves on its first tick — only horizontal that interrupts
vertical has anything to prove.
A tilt wheel gets the same treatment, where recent-vertical is a much weaker
signal of accident. Deliberate: the only honest fix is a per-device flag out of
the shell, and that layer costs more than the three clicks it would save.
The rule is one pure function next to the number it reads, with an inline test
written to hold for any tuning of that number. unit-test grew a fourth binary
over the core module hxdiff already links. New golden wheeldrift; none moved.
Diffstat (limited to 'src/gui')
0 files changed, 0 insertions, 0 deletions
