Subj : src/doors/termgfx/term.c term.h To : Git commit to main/sbbs/master From : Rob Swindell (on Debian Linux) Date : Mon Aug 10 2026 21:30:27 https://gitlab.synchro.net/main/sbbs/-/commit/66367891c957d731bc78f1b2 Modified Files: src/doors/termgfx/term.c term.h Log Message: termgfx: quiet the terminal's own mouse pointer while a door runs An arrow floating over a full-screen scene is what gives away that this is a window rather than a game, and a door that draws its own cursor -- SyncSCUMM does -- ends up showing two. Two sequences, because no terminal implements both and each ignores the other's. xterm gets XTSMPOINTER pointerMode 3, which hides the pointer and keeps it hidden across the window border; mode 2 is the near miss, unhiding whenever the pointer crosses it. The default is not enough on its own: it is mode 1, "hide if the mouse tracking mode is not enabled", and these doors enable tracking, so xterm deliberately keeps the pointer visible for exactly this case. foot gets OSC 22 with an xcursor name -- it cannot hide a pointer at all, an empty or unknown name only resets the shape, so a crosshair is the closest it gets to not being an arrow. SyncTERM implements neither. cterm has no XTSMPOINTER, and its OSC handler knows only 4, 8, 10, 11 and 104 and discards the rest, so both are safe to send blind. Cosmetic, and only that: no terminal offers the pointer LOCK that would let a door hide the pointer and still track the hand, so this changes how the pointer looks and nothing about where it can go or what it reports. XTSMPOINTER has no query, so restore writes pointerMode 1 -- the documented default -- and assumes the user had not chosen their own. A caller should therefore restore only if it quieted. Co-Authored-By: Claude Opus 5 (1M context) --- SBBSecho 3.37-Linux * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705) .