mirror of
https://github.com/godotengine/godot.git
synced 2025-10-20 08:23:29 +00:00
[HTML5] Implement fullscreenchange in JS library.
Removes more emscripten HTML5 library dependencies.
This commit is contained in:
parent
b2d30c725d
commit
b6315afc9a
4 changed files with 22 additions and 18 deletions
|
@ -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,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue