From 01acd46afc8b76522a0a5f20d187939695c6db35 Mon Sep 17 00:00:00 2001 From: Dodoveloper Date: Wed, 19 Feb 2020 10:36:26 +0100 Subject: [PATCH] Fix #33326 by reopening scenes (cherry picked from commit c3abda0b13bad35eb19c9577f3132394c4ce4e60) --- editor/editor_node.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/editor/editor_node.cpp b/editor/editor_node.cpp index d7c47c33acf..9cb8cf35fda 100644 --- a/editor/editor_node.cpp +++ b/editor/editor_node.cpp @@ -2258,6 +2258,7 @@ void EditorNode::_menu_option_confirm(int p_option, bool p_confirmed) { if (!p_confirmed) { tab_closing = p_option == FILE_CLOSE ? editor_data.get_edited_scene() : _next_unsaved_scene(false); + _scene_tab_changed(tab_closing); if (unsaved_cache || p_option == FILE_CLOSE_ALL_AND_QUIT || p_option == FILE_CLOSE_ALL_AND_RUN_PROJECT_MANAGER) { String scene_filename = editor_data.get_edited_scene_root(tab_closing)->get_filename(); @@ -2902,6 +2903,10 @@ void EditorNode::_discard_changes(const String &p_str) { _update_scene_tabs(); if (current_option == FILE_CLOSE_ALL_AND_QUIT || current_option == FILE_CLOSE_ALL_AND_RUN_PROJECT_MANAGER) { + // If restore tabs is enabled, reopen the scene that has just been closed, so it's remembered properly. + if (bool(EDITOR_GET("interface/scene_tabs/restore_scenes_on_load"))) { + _menu_option_confirm(FILE_OPEN_PREV, true); + } if (_next_unsaved_scene(false) == -1) { current_option = current_option == FILE_CLOSE_ALL_AND_QUIT ? FILE_QUIT : RUN_PROJECT_MANAGER; _discard_changes();