Browse Source

EditorNode: fix scene save over others

Poommetee Ketson 8 years ago
parent
commit
d25ea73822
1 changed files with 12 additions and 5 deletions
  1. 12 5
      editor/editor_node.cpp

+ 12 - 5
editor/editor_node.cpp

@@ -908,8 +908,10 @@ void EditorNode::_save_all_scenes() {
 	for (int i = 0; i < editor_data.get_edited_scene_count(); i++) {
 	for (int i = 0; i < editor_data.get_edited_scene_count(); i++) {
 		Node *scene = editor_data.get_edited_scene_root(i);
 		Node *scene = editor_data.get_edited_scene_root(i);
 		if (scene && scene->get_filename() != "") {
 		if (scene && scene->get_filename() != "") {
-			// save in background if in the script editor
-			_save_scene_with_preview(scene->get_filename());
+			if (i != editor_data.get_edited_scene())
+				_save_scene(scene->get_filename(), i);
+			else
+				_save_scene_with_preview(scene->get_filename());
 		} // else: ignore new scenes
 		} // else: ignore new scenes
 	}
 	}
 
 
@@ -983,7 +985,10 @@ void EditorNode::_dialog_action(String p_file) {
 			if (file->get_mode() == EditorFileDialog::MODE_SAVE_FILE) {
 			if (file->get_mode() == EditorFileDialog::MODE_SAVE_FILE) {
 
 
 				_save_default_environment();
 				_save_default_environment();
-				_save_scene_with_preview(p_file);
+				if (scene_idx != editor_data.get_edited_scene())
+					_save_scene(p_file, scene_idx);
+				else
+					_save_scene_with_preview(p_file);
 
 
 				if (scene_idx != -1)
 				if (scene_idx != -1)
 					_discard_changes();
 					_discard_changes();
@@ -1660,8 +1665,10 @@ void EditorNode::_menu_option_confirm(int p_option, bool p_confirmed) {
 			Node *scene = editor_data.get_edited_scene_root(scene_idx);
 			Node *scene = editor_data.get_edited_scene_root(scene_idx);
 			if (scene && scene->get_filename() != "") {
 			if (scene && scene->get_filename() != "") {
 
 
-				// save in background if in the script editor
-				_save_scene_with_preview(scene->get_filename());
+				if (scene_idx != editor_data.get_edited_scene())
+					_save_scene(scene->get_filename(), scene_idx);
+				else
+					_save_scene_with_preview(scene->get_filename());
 
 
 				if (scene_idx != -1)
 				if (scene_idx != -1)
 					_discard_changes();
 					_discard_changes();