https://gitlab.synchro.net/main/sbbs/-/commit/cb106dbe65584cdf688429e1
Modified Files:
src/conio/win32gdi.c
Log Message:
Fix stuck modifier keys by handling WM_KILLFOCUS/WM_SETFOCUS in gdi_WndProc (ticket 226)
WM_KILLFOCUS and WM_SETFOCUS are sent (synchronous), not posted, so
they go directly to gdi_WndProc bypassing the GetMessage/magic_message
path entirely. The previous fix in magic_message never ran.
Move mods to file scope so gdi_WndProc can access it. Clear mods on WM_KILLFOCUS, and re-sync from GetAsyncKeyState on WM_SETFOCUS to
catch modifiers held across the focus boundary. Remove the
WM_ACTIVATEAPP handler and message-loop sync machinery which were
unnecessary — debug logging confirmed the thread keyboard state (GetKeyboardState) correctly showed Ctrl as released; only the mods
variable was stale, causing magic_message to consume key events as
Ctrl+key combos via the keyval table.
Co-Authored-By: Claude Opus 4.6 (1M context) <
noreply@anthropic.com>
--- SBBSecho 3.37-Linux
* Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)