diff options
author | RĂ©mi Verschelde <rverschelde@gmail.com> | 2018-08-30 08:08:57 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-08-30 08:08:57 +0200 |
commit | 9320c852f575440443aec3e5197838591bab9dca (patch) | |
tree | 9581d5234fee931462abe06adf03b56fd18ec925 /platform | |
parent | 9a5f3624948404df2f3720dc4bac433509893f6d (diff) | |
parent | cd7c0f67b9f3497ec420da97c6a29c43c68612c2 (diff) |
Merge pull request #21588 from eska014/html5-gamepads
Fix HTML5 gamepad input
Diffstat (limited to 'platform')
-rw-r--r-- | platform/javascript/os_javascript.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/platform/javascript/os_javascript.cpp b/platform/javascript/os_javascript.cpp index 80699b0d32..a7a26411b7 100644 --- a/platform/javascript/os_javascript.cpp +++ b/platform/javascript/os_javascript.cpp @@ -565,8 +565,11 @@ void OS_JavaScript::process_joypads() { int joypad_count = emscripten_get_num_gamepads(); for (int joypad = 0; joypad < joypad_count; joypad++) { EmscriptenGamepadEvent state; - emscripten_get_gamepad_status(joypad, &state); - if (state.connected) { + EMSCRIPTEN_RESULT query_result = emscripten_get_gamepad_status(joypad, &state); + // Chromium reserves gamepads slots, so NO_DATA is an expected result. + ERR_CONTINUE(query_result != EMSCRIPTEN_RESULT_SUCCESS && + query_result != EMSCRIPTEN_RESULT_NO_DATA); + if (query_result == EMSCRIPTEN_RESULT_SUCCESS && state.connected) { int button_count = MIN(state.numButtons, 18); int axis_count = MIN(state.numAxes, 8); |