Forráskód Böngészése

Merge pull request #102070 from ryevdokimov/reparent-save-confirmation

Make save confirmation a child of last exclusive window of EditorNode before popup
Thaddeus Crews 6 hónapja
szülő
commit
9ee1873ae1
2 módosított fájl, 7 hozzáadás és 0 törlés
  1. 5 0
      editor/editor_node.cpp
  2. 2 0
      editor/editor_node.h

+ 5 - 0
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."));

+ 2 - 0
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<String> &p_files);