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. |
| GUI edit fields | Backspace/delete, cursor movement, enter handling, ctrl-h/ctrl-a/ctrl-e style chars | Pass | Control-char synthesis parity verified on SDL3 path. |
| Chat input | Text entry/editing in GUI-driven chat fields | Pass (ASCII/control) | Same event flow as edit controls. |
| Binds | Key-down bind execution in session loop (including function keys and mouse/wheel) | Pass (core) | Common bindable keys align. |
| Numpad | KP enter/arrows/home/end/ins/del, KP operators, KP equals | Pass (core) | SDL3 mapping covers key families used by id key enums. |
| Modifiers | Ctrl/Shift/Alt/RightAlt behavior | Pass (core) | Locale-sensitive RightAlt behavior retained. |
- Non-English layout parity is still incomplete.
- Console key localization parity is incomplete outside default mapping.
- Text input queueing remains byte-oriented for UTF-8
SDL_EVENT_TEXT_INPUTpayloads.
- Complete layout-aware key translation parity for non-English keyboard maps.
- Make
Sys_GetConsoleKeylayout-aware for SDL3 path. - Decode UTF-8 before emitting
SE_CHARevents.