From 5ea0baab8b1e7afca89c39428c975872d66ad47e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pa=CC=84vels=20Nadtoc=CC=8Cajevs?= <7645683+bruvzg@users.noreply.github.com> Date: Fri, 13 Jun 2025 19:08:56 +0300 Subject: [PATCH] Fix `set_force_native` when window is not in tree. --- scene/main/window.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/scene/main/window.cpp b/scene/main/window.cpp index 611b1e6950f..e2dcb21820d 100644 --- a/scene/main/window.cpp +++ b/scene/main/window.cpp @@ -1370,7 +1370,7 @@ void Window::set_force_native(bool p_force_native) { return; } force_native = p_force_native; - if (!is_in_edited_scene_root() && get_tree()->get_root()->is_embedding_subwindows()) { + if (!is_in_edited_scene_root() && is_inside_tree() && get_tree()->get_root()->is_embedding_subwindows()) { set_embedding_subwindows(force_native); } } @@ -1502,6 +1502,9 @@ void Window::_notification(int p_what) { if (!ProjectSettings::get_singleton()->is_connected("settings_changed", callable_mp(this, &Window::_settings_changed))) { ProjectSettings::get_singleton()->connect("settings_changed", callable_mp(this, &Window::_settings_changed)); } + } else if (get_parent() && get_tree()->get_root()->is_embedding_subwindows()) { + // Is not the main window and main window is embedding. + set_embedding_subwindows(force_native); } bool embedded = false;