https://gitlab.synchro.net/main/sbbs/-/commit/c9737b87032bbed1c4e4d2c6
Modified Files:
src/doors/termgfx/sgrmouse.c src/doors/termgfx/test/test_mouse.c
Log Message:
termgfx: the motion bit is authoritative -- 97 is a moving pointer
A wheel notch carrying the motion bit was rescued as wheel-down, on the reasoning that a hover never sets the low bit and on a session measured at
75 such reports against 30 clean ones. A later capture inverts that ratio completely: 1492 clean 64/65 detents against 16 of 97, several of the 97s arriving 6 to 8 ms apart with the coordinates walking one cell at a time.
No hand turns a wheel that fast; that is a pointer being moved.
What the rescue actually bought was a phantom scroll on every pointer
movement. A door's block selection changed whenever the mouse moved, and behaved correctly only while the hand was held perfectly still -- which is exactly how it was reported, and was read as a terminal bug for several
rounds.
This corrects 1da9027368 (fire-20-buys, 2026-08-09), which added
the rescue. Real detents arrive as 64 and 65 without the motion bit, in
their thousands, so trusting the bit loses nothing. The test now pins both directions: 96 and 97 are motion, 64 and 65 are notches. It fails against
the rescued decode.
Co-Authored-By: Claude Opus 5 (1M context) <
noreply@anthropic.com>
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net