diff options
author | Fabio Alessandrelli <fabio.alessandrelli@gmail.com> | 2021-10-05 12:54:42 +0200 |
---|---|---|
committer | Fabio Alessandrelli <fabio.alessandrelli@gmail.com> | 2021-10-05 14:15:07 +0200 |
commit | 7d6c1fdb32d277d1986be60e34b92dbca4e30939 (patch) | |
tree | d2061822724dd8d69efe919eebf818136b1b815e /platform/javascript/display_server_javascript.cpp | |
parent | b6315afc9ae89d12bcb6201b627605d630d58e58 (diff) | |
download | redot-engine-7d6c1fdb32d277d1986be60e34b92dbca4e30939.tar.gz |
[HTML5] Implement window blur in JS library.
Removes more emscripten HTML5 library dependencies.
Diffstat (limited to 'platform/javascript/display_server_javascript.cpp')
-rw-r--r-- | platform/javascript/display_server_javascript.cpp | 21 |
1 files changed, 2 insertions, 19 deletions
diff --git a/platform/javascript/display_server_javascript.cpp b/platform/javascript/display_server_javascript.cpp index 04f3a3cbca..6ec6abc1b8 100644 --- a/platform/javascript/display_server_javascript.cpp +++ b/platform/javascript/display_server_javascript.cpp @@ -528,10 +528,8 @@ void DisplayServerJavaScript::virtual_keyboard_hide() { godot_js_display_vk_hide(); } -// Window blur callback -EM_BOOL DisplayServerJavaScript::blur_callback(int p_event_type, const EmscriptenFocusEvent *p_event, void *p_user_data) { +void DisplayServerJavaScript::window_blur_callback() { Input::get_singleton()->release_pressed_events(); - return false; } // Gamepad @@ -716,28 +714,13 @@ DisplayServerJavaScript::DisplayServerJavaScript(const String &p_rendering_drive video_driver_index = p_video_driver; #endif - EMSCRIPTEN_RESULT result; -#define EM_CHECK(ev) \ - if (result != EMSCRIPTEN_RESULT_SUCCESS) \ - ERR_PRINT("Error while setting " #ev " callback: Code " + itos(result)); -#define SET_EM_CALLBACK(target, ev, cb) \ - result = emscripten_set_##ev##_callback(target, nullptr, true, &cb); \ - EM_CHECK(ev) -#define SET_EM_WINDOW_CALLBACK(ev, cb) \ - result = emscripten_set_##ev##_callback(EMSCRIPTEN_EVENT_TARGET_WINDOW, nullptr, false, &cb); \ - EM_CHECK(ev) - // These callbacks from Emscripten's html5.h suffice to access most - // JavaScript APIs. - SET_EM_WINDOW_CALLBACK(blur, blur_callback) -#undef SET_EM_CALLBACK -#undef EM_CHECK - godot_js_display_mouse_button_cb(&DisplayServerJavaScript::mouse_button_callback); godot_js_display_mouse_move_cb(&DisplayServerJavaScript::mouse_move_callback); godot_js_display_mouse_wheel_cb(&DisplayServerJavaScript::mouse_wheel_callback); godot_js_display_touch_cb(&DisplayServerJavaScript::touch_callback, touch_event.identifier, touch_event.coords); godot_js_display_key_cb(&DisplayServerJavaScript::key_callback, key_event.code, key_event.key); godot_js_display_fullscreen_cb(&DisplayServerJavaScript::fullscreen_change_callback); + godot_js_display_window_blur_cb(&window_blur_callback); godot_js_display_notification_cb(&send_window_event_callback, WINDOW_EVENT_MOUSE_ENTER, WINDOW_EVENT_MOUSE_EXIT, |