summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorfaisal-alam09 <faisal.009alam@gmail.com>2022-08-28 01:11:48 +0530
committerfaisal-alam09 <faisal.009alam@gmail.com>2022-08-28 01:11:48 +0530
commited54a7be3d01b571ccaab4bb7dcf35f4846357f1 (patch)
treeabcd7a9cf6b8b2fe3eec2f5bc37e0ef32cdf041a
parent85ef0a1058fb0acbf550b8d3674d02d9023de82b (diff)
Added a placeholder tab check before creating a new scene.
-rw-r--r--editor/editor_node.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/editor/editor_node.cpp b/editor/editor_node.cpp
index 375aa26de9..ba140c4862 100644
--- a/editor/editor_node.cpp
+++ b/editor/editor_node.cpp
@@ -3702,6 +3702,18 @@ void EditorNode::fix_dependencies(const String &p_for_file) {
int EditorNode::new_scene() {
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);
editor_data.clear_editor_states();
_update_scene_tabs();