Browse Source

Merge pull request #64961 from faisal-alam09/Bugfix-#64836-Placeholder-scene-tab-not-removed-when-new-scene-created

Added a placeholder tab check before creating a new scene.
Rémi Verschelde 3 years ago
parent
commit
006915b482
1 changed files with 12 additions and 0 deletions
  1. 12 0
      editor/editor_node.cpp

+ 12 - 0
editor/editor_node.cpp

@@ -3702,6 +3702,18 @@ void EditorNode::fix_dependencies(const String &p_for_file) {
 
 
 int EditorNode::new_scene() {
 int EditorNode::new_scene() {
 	int idx = editor_data.add_edited_scene(-1);
 	int idx = editor_data.add_edited_scene(-1);
+	// Remove placeholder empty scene.
+	if (editor_data.get_edited_scene_count() > 1) {
+		for (int i = 0; i < editor_data.get_edited_scene_count() - 1; i++) {
+			bool unsaved = get_undo_redo()->is_history_unsaved(editor_data.get_scene_history_id(i));
+			if (!unsaved && editor_data.get_scene_path(i).is_empty()) {
+				editor_data.remove_scene(i);
+				idx--;
+			}
+		}
+	}
+	idx = MAX(idx, 0);
+
 	_scene_tab_changed(idx);
 	_scene_tab_changed(idx);
 	editor_data.clear_editor_states();
 	editor_data.clear_editor_states();
 	_update_scene_tabs();
 	_update_scene_tabs();