SDL3 has text input off by default and per-window, so without SDL_StartTextInput() it emits no SDL_EVENT_TEXT_INPUT at all and every keystroke reaches libakgl's ring with an empty text field. The editor had just been changed to prefer that composed text over the keycode, so it read every key as not-a-character: no echo in the window, and nothing on stdout either, because RUN could never be typed. One cause, both symptoms. The editor now falls back to the keycode when there is no composed text, so a host that forgets to start text input gets a worse keyboard rather than none. The suite missed this because every keyboard test pushes the text-input event into SDL's queue by hand -- which is what a real keyboard produces, but only once text input has been started. Synthesising the end of a chain cannot test the beginning of it. The new test asserts SDL_TextInputActive() directly, and both halves were checked by reverting each and watching it fail. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
20 KiB
20 KiB