Commit b54eb82c67904c55711385b900db3754547b50ee

Boris Gjenero 2016-09-13T00:03:49

Unpress all keys on blur to avoid stuck keys

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
diff --git a/src/video/emscripten/SDL_emscriptenevents.c b/src/video/emscripten/SDL_emscriptenevents.c
index e905a53..f474689 100644
--- a/src/video/emscripten/SDL_emscriptenevents.c
+++ b/src/video/emscripten/SDL_emscriptenevents.c
@@ -392,6 +392,11 @@ EM_BOOL
 Emscripten_HandleFocus(int eventType, const EmscriptenFocusEvent *wheelEvent, void *userData)
 {
     SDL_WindowData *window_data = userData;
+    /* If the user switches away while keys are pressed (such as
+     * via Alt+Tab), key release events won't be received. */
+    if (eventType == EMSCRIPTEN_EVENT_BLUR) {
+        SDL_ResetKeyboard();
+    }
     SDL_SendWindowEvent(window_data->window, eventType == EMSCRIPTEN_EVENT_FOCUS ? SDL_WINDOWEVENT_FOCUS_GAINED : SDL_WINDOWEVENT_FOCUS_LOST, 0, 0);
     return 1;
 }