events: Raise keyboard keys before sending the focus lost message

Otherwise, the key raises may end up being ignored.
This commit is contained in:
Frank Praznik
2026-01-15 14:57:05 -05:00
parent 02c9f2045b
commit e62d6a95b9

View File

@@ -337,6 +337,11 @@ bool SDL_SetKeyboardFocus(SDL_Window *window)
}
}
if (keyboard->focus && !window) {
// We won't get anymore keyboard messages, so reset keyboard state
SDL_ResetKeyboard();
}
// See if the current window has lost focus
if (keyboard->focus && keyboard->focus != window) {
SDL_SendWindowEvent(keyboard->focus, SDL_EVENT_WINDOW_FOCUS_LOST, 0, 0);
@@ -352,9 +357,6 @@ bool SDL_SetKeyboardFocus(SDL_Window *window)
}
if (keyboard->focus && !window) {
// We won't get anymore keyboard messages, so reset keyboard state
SDL_ResetKeyboard();
// Also leave mouse relative mode
if (mouse->relative_mode) {
SDL_SetRelativeMouseMode(false);