This checklist audits SDL3 input parity against the legacy Win32 path for:
- console
- GUI edit fields
- chat
- binds
- numpad
- modifiers
- Reviewed event generation in
src/sys/win32/win_sdl3.cpp. - Compared behavior to legacy
WM_KEY*+WM_CHAR/DirectInput paths in:src/sys/win32/win_wndproc.cppsrc/sys/win32/win_input.cpp
- Reviewed consumer paths:
src/framework/Console.cppsrc/framework/EditField.cppsrc/ui/EditWindow.cppsrc/ui/Window.cppsrc/framework/Session.cpp
| Area | Coverage | Result | Notes |
|---|---|---|---|
| Console input | Toggle key, enter/submit, tab-complete, history, paging, backspace, ctrl shortcuts | Pass | SE_KEY + SE_CHAR paths align for core behavior, and Sys_GetConsoleKey now follows the active SDL3 layout for the grave/console scancode. |
| GUI edit fields | Backspace/delete, cursor movement, enter handling, ctrl-h/ctrl-a/ctrl-e style chars | Pass | Backspace regression fixed via control-char synthesis on keydown. |
| Chat input | Text entry/editing in GUI-driven chat fields | Pass (UTF-8/control) | SDL text input is decoded to Unicode codepoints before queuing SE_CHAR, and control chars remain restored on keydown. |
| Binds | Key-down bind execution in session loop (including function keys and mouse/wheel) | Pass | Printable SE_KEY values now come from SDL3's current-layout keycode translation while special keys keep the explicit engine mappings. |
| Numpad | KP enter/arrows/home/end/ins/del, KP operators, KP equals | Pass (core) | SDL3 mapping includes KP key families used by id key enums. |
| Modifiers | Ctrl/Shift/Alt/RightAlt behavior | Pass (core) | RightAlt locale behavior now matches legacy intent for english vs selected non-english languages. |
- Legacy keynums still cap bindable printable keys to the engine's 8-bit key range.
- SDL3 layout-aware translation now restores the intended non-English bind semantics for printable Latin-1 keycodes and console-toggle lookup.
- Layouts whose base printable keys fall outside the legacy
< 256keynum space still need a broader input-system expansion if they are to become bindable without fallback behavior.
- Validate the SDL3 layout-aware path against real AZERTY/QWERTZ/Spanish/Italian keyboards during runtime bring-up and record any layout-specific regressions in this matrix.
- Decide whether future non-Latin-1 keyboard support should extend the legacy keynum/bind system beyond the current 8-bit printable-key range.