summaryrefslogtreecommitdiff
path: root/platform/javascript/display_server_javascript.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'platform/javascript/display_server_javascript.cpp')
-rw-r--r--platform/javascript/display_server_javascript.cpp22
1 files changed, 6 insertions, 16 deletions
diff --git a/platform/javascript/display_server_javascript.cpp b/platform/javascript/display_server_javascript.cpp
index c00a1cd57b..04f3a3cbca 100644
--- a/platform/javascript/display_server_javascript.cpp
+++ b/platform/javascript/display_server_javascript.cpp
@@ -62,20 +62,13 @@ bool DisplayServerJavaScript::check_size_force_redraw() {
return godot_js_display_size_update() != 0;
}
-EM_BOOL DisplayServerJavaScript::fullscreen_change_callback(int p_event_type, const EmscriptenFullscreenChangeEvent *p_event, void *p_user_data) {
+void DisplayServerJavaScript::fullscreen_change_callback(int p_fullscreen) {
DisplayServerJavaScript *display = get_singleton();
- // Empty ID is canvas.
- String target_id = String::utf8(p_event->id);
- if (target_id.is_empty() || target_id == String::utf8(&(display->canvas_id[1]))) {
- // This event property is the only reliable data on
- // browser fullscreen state.
- if (p_event->isFullscreen) {
- display->window_mode = WINDOW_MODE_FULLSCREEN;
- } else {
- display->window_mode = WINDOW_MODE_WINDOWED;
- }
+ if (p_fullscreen) {
+ display->window_mode = WINDOW_MODE_FULLSCREEN;
+ } else {
+ display->window_mode = WINDOW_MODE_WINDOWED;
}
- return false;
}
// Drag and drop callback.
@@ -736,7 +729,6 @@ DisplayServerJavaScript::DisplayServerJavaScript(const String &p_rendering_drive
// These callbacks from Emscripten's html5.h suffice to access most
// JavaScript APIs.
SET_EM_WINDOW_CALLBACK(blur, blur_callback)
- SET_EM_CALLBACK(EMSCRIPTEN_EVENT_TARGET_DOCUMENT, fullscreenchange, fullscreen_change_callback)
#undef SET_EM_CALLBACK
#undef EM_CHECK
@@ -745,9 +737,7 @@ DisplayServerJavaScript::DisplayServerJavaScript(const String &p_rendering_drive
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);
-
- // For APIs that are not (sufficiently) exposed, a
- // library is used below (implemented in library_godot_display.js).
+ godot_js_display_fullscreen_cb(&DisplayServerJavaScript::fullscreen_change_callback);
godot_js_display_notification_cb(&send_window_event_callback,
WINDOW_EVENT_MOUSE_ENTER,
WINDOW_EVENT_MOUSE_EXIT,