• src/doors/syncconquer/door/door_input.c door_io.c door_io.h

    From Rob Swindell (on Debian Linux)@1:103/705 to Git commit to main/sbbs/master on Fri Jul 10 23:41:57 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/e2935fc86b51162e3ac36734
    Modified Files:
    src/doors/syncconquer/door/door_input.c door_io.c door_io.h
    Log Message:
    syncalert: add Ctrl-S stats overlay and fix door hotkeys in all key modes

    Ctrl-S toggles a live debug overlay: graphics tier, frame rate, wire
    throughput (K/Mbps), pacing depth, keyboard-event mode, mouse
    granularity, client charset, RTT, and canvas/grid/cell geometry. It's
    drawn as one condensed line on the bottom text row -- the one placement
    that survives every tier (sixel can't paint over its reserved bottom row; JXL/PPM and the text tiers layer a text overlay on top). The overlay does
    NOT bypass the frame-dedupe: on an unchanged frame it refreshes only the
    line (change-detected) rather than re-encoding the whole image, which is
    what made an earlier top-corner overlay flicker under sixel.

    Also fix the door-level Ctrl+letter hotkeys (Ctrl-D/F/U/P/S). They were
    only decoded on the legacy raw-byte input path, so under the negotiated
    evdev (SyncTERM) or kitty (Windows Terminal) keyboard mode -- where a
    modified key arrives as a CSI/evdev report, not a raw control byte -- they
    were silently swallowed during play (the same trap F4 already worked
    around). Route all three input paths through one door_io_hotkey()
    dispatcher; a commit flag fires the action on the press edge only while swallowing repeat/release, so a held key can't re-toggle or leak the
    letter into the game.

    Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
    --- SBBSecho 3.37-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)