• src/doors/termgfx/sgrmouse.c src/doors/termgfx/test/test_mouse.c

    From Rob Swindell (on Debian Linux)@VERT to Git commit to main/sbbs/master on Sunday, August 09, 2026 23:03:12
    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