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) --- SBBSecho 3.37-Linux * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
|