diff --git a/editor/editor_node.cpp b/editor/editor_node.cpp index 408cc5b2f37..778257b3930 100644 --- a/editor/editor_node.cpp +++ b/editor/editor_node.cpp @@ -5730,6 +5730,10 @@ void EditorNode::_cancel_close_scene_tab() { } } +void EditorNode::_prepare_save_confirmation_popup() { + save_confirmation->reparent(get_last_exclusive_window()); +} + void EditorNode::_toggle_distraction_free_mode() { if (EDITOR_GET("interface/editor/separate_distraction_mode")) { int screen = editor_main_screen->get_selected_index(); @@ -7737,6 +7741,7 @@ EditorNode::EditorNode() { save_confirmation->connect(SceneStringName(confirmed), callable_mp(this, &EditorNode::_menu_confirm_current)); save_confirmation->connect("custom_action", callable_mp(this, &EditorNode::_discard_changes)); save_confirmation->connect("canceled", callable_mp(this, &EditorNode::_cancel_close_scene_tab)); + save_confirmation->connect("about_to_popup", callable_mp(this, &EditorNode::_prepare_save_confirmation_popup)); gradle_build_manage_templates = memnew(ConfirmationDialog); gradle_build_manage_templates->set_text(TTR("Android build template is missing, please install relevant templates.")); diff --git a/editor/editor_node.h b/editor/editor_node.h index 67d9fbf713c..563d7a79fcb 100644 --- a/editor/editor_node.h +++ b/editor/editor_node.h @@ -576,6 +576,8 @@ private: void _scene_tab_closed(int p_tab); void _cancel_close_scene_tab(); + void _prepare_save_confirmation_popup(); + void _inherit_request(String p_file); void _instantiate_request(const Vector &p_files);