• src/doors/syncdoom/syncdoom.c

    From Rob Swindell (on Debian Linux)@1:103/705 to Git commit to main/sbbs/master on Thu Jul 9 01:55:11 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/716fdefcfab4f09a178bde67
    Modified Files:
    src/doors/syncdoom/syncdoom.c
    Log Message:
    syncdoom: move onto termgfx keymode

    The last of the four doors to stop carrying its own copy of the terminal key-mode negotiation. termgfx/keymode.h (cf67bccb2a, thrown-29-throw) now supplies the evdev/kitty enable and restore sequences, the evdev-wins precedence, the enable-time settle window, the 88-entry evdev->ASCII
    table and the modifier classifier.

    g_kitty_active and g_evdev_active stay as plain int globals, because
    m_menu.c reads them to grey out the key-feel sliders once a native
    key-up path is negotiated, and m_menu.c is vendored. They are now
    mirrors, set from the shared state after an enable succeeds and cleared
    in the restore -- rather than the state itself.

    The restore is a single termgfx_keymode_restore() emitting only what was actually enabled, in place of two hand-guarded literal writes.

    No change to the bytes on the wire, the settle window's 500ms, or the
    evdev key handling: Shift still asserts the engine's Run + Strafe
    scancodes, Ctrl and physical Alt are still tracked and never forwarded (SyncTERM reserves Alt+key), and the Shift-folds-to-upper-in-menus-only
    rule is unchanged.
    --- SBBSecho 3.37-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)