From 1686af726e6968ffe870e5d39824b30273756ec5 Mon Sep 17 00:00:00 2001 From: Philipp Wiesemann Date: Fri, 6 Mar 2015 21:26:37 +0100 Subject: [PATCH] Emscripten: Partially fixed not removing key event callbacks if hint was used. The key event callbacks were always removed from the same target although it is possible to set them to different targets using the hint. This is only a partial fix because it assumes that the hint is not changed to a different value later. --- src/video/emscripten/SDL_emscriptenevents.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/video/emscripten/SDL_emscriptenevents.c b/src/video/emscripten/SDL_emscriptenevents.c index ef746e5c691da..d61ff4fe0bb86 100644 --- a/src/video/emscripten/SDL_emscriptenevents.c +++ b/src/video/emscripten/SDL_emscriptenevents.c @@ -621,10 +621,15 @@ Emscripten_UnregisterEventHandlers(SDL_WindowData *data) emscripten_set_touchmove_callback("#canvas", NULL, 0, NULL); emscripten_set_touchcancel_callback("#canvas", NULL, 0, NULL); - emscripten_set_keydown_callback("#window", NULL, 0, NULL); - emscripten_set_keyup_callback("#window", NULL, 0, NULL); + const char *target = SDL_GetHint(SDL_HINT_EMSCRIPTEN_KEYBOARD_ELEMENT); + if (!target) { + target = "#window"; + } + + emscripten_set_keydown_callback(target, NULL, 0, NULL); + emscripten_set_keyup_callback(target, NULL, 0, NULL); - emscripten_set_keypress_callback("#window", NULL, 0, NULL); + emscripten_set_keypress_callback(target, NULL, 0, NULL); emscripten_set_fullscreenchange_callback("#document", NULL, 0, NULL);