Selaa lähdekoodia

events: Raise keyboard keys before sending the focus lost message

Otherwise, the key raises may end up being ignored.

(cherry picked from commit e62d6a95b9fc193a8fd846c17844d2bd548a8c54)
Frank Praznik 1 kuukausi sitten
vanhempi
commit
49955b3732
1 muutettua tiedostoa jossa 5 lisäystä ja 3 poistoa
  1. 5 3
      src/events/SDL_keyboard.c

+ 5 - 3
src/events/SDL_keyboard.c

@@ -333,6 +333,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);
@@ -346,9 +351,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);