summaryrefslogtreecommitdiffstats
path: root/platform/web/display_server_web.cpp
diff options
context:
space:
mode:
authorRémi Verschelde <remi@verschelde.fr>2022-11-08 17:46:57 +0100
committerGitHub <noreply@github.com>2022-11-08 17:46:57 +0100
commit60e25835a5d19dee9382052549d7f7a6523a6b97 (patch)
treede2c5d90d24ff0fcb8b28bfd15d3f702d236be3b /platform/web/display_server_web.cpp
parenta499f7bdc4be5877c75bd898e040937a02b99b85 (diff)
parentbc9bf00e4a7488d8a691031b759073151c29b11c (diff)
downloadredot-engine-60e25835a5d19dee9382052549d7f7a6523a6b97.tar.gz
Merge pull request #68406 from zaevi/fix_web_auto_resize
Fix viewport doesn't auto-resize on Web.
Diffstat (limited to 'platform/web/display_server_web.cpp')
-rw-r--r--platform/web/display_server_web.cpp12
1 files changed, 10 insertions, 2 deletions
diff --git a/platform/web/display_server_web.cpp b/platform/web/display_server_web.cpp
index 5a1a56b9da..f704124704 100644
--- a/platform/web/display_server_web.cpp
+++ b/platform/web/display_server_web.cpp
@@ -54,7 +54,15 @@ DisplayServerWeb *DisplayServerWeb::get_singleton() {
// Window (canvas)
bool DisplayServerWeb::check_size_force_redraw() {
- return godot_js_display_size_update() != 0;
+ bool size_changed = godot_js_display_size_update() != 0;
+ if (size_changed && !rect_changed_callback.is_null()) {
+ Variant size = Rect2i(Point2i(), window_get_size()); // TODO use window_get_position if implemented.
+ Variant *vp = &size;
+ Variant ret;
+ Callable::CallError ce;
+ rect_changed_callback.callp((const Variant **)&vp, 1, ret, ce);
+ }
+ return size_changed;
}
void DisplayServerWeb::fullscreen_change_callback(int p_fullscreen) {
@@ -903,7 +911,7 @@ ObjectID DisplayServerWeb::window_get_attached_instance_id(WindowID p_window) co
}
void DisplayServerWeb::window_set_rect_changed_callback(const Callable &p_callable, WindowID p_window) {
- // Not supported.
+ rect_changed_callback = p_callable;
}
void DisplayServerWeb::window_set_window_event_callback(const Callable &p_callable, WindowID p_window) {