diff options
author | Rémi Verschelde <remi@verschelde.fr> | 2021-10-12 22:12:44 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-10-12 22:12:44 +0200 |
commit | 322d2b23738c6fd828c82a4eb46de79bfd2c82d8 (patch) | |
tree | 78e13a3ca8ec95da8145c39b76bf112f5bf2ad48 | |
parent | 718ed15f06ed1e2316900d58b69a318cce421674 (diff) | |
parent | f33a6328b5ccf00c831df928b395a7875005b947 (diff) |
Merge pull request #53732 from Paulb23/text-file-save
Fix TextFiles not saving when closing the tab
-rw-r--r-- | editor/plugins/script_editor_plugin.cpp | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/editor/plugins/script_editor_plugin.cpp b/editor/plugins/script_editor_plugin.cpp index ca6ecfbd3a..bb97c7a750 100644 --- a/editor/plugins/script_editor_plugin.cpp +++ b/editor/plugins/script_editor_plugin.cpp @@ -763,20 +763,24 @@ void ScriptEditor::_close_tab(int p_idx, bool p_save, bool p_history_back) { ScriptEditorBase *current = Object::cast_to<ScriptEditorBase>(tselected); if (current) { - Ref<Script> script = current->get_edited_resource(); - if (p_save && script.is_valid()) { + RES file = current->get_edited_resource(); + if (p_save && file.is_valid()) { // Do not try to save internal scripts, but prompt to save in-memory // scripts which are not saved to disk yet (have empty path). - if (script->get_path().find("local://") == -1 && script->get_path().find("::") == -1) { + if (file->get_path().find("local://") == -1 && file->get_path().find("::") == -1) { save_current_script(); } } - if (script.is_valid()) { - if (!script->get_path().is_empty()) { + if (file.is_valid()) { + if (!file->get_path().is_empty()) { // Only saved scripts can be restored. - previous_scripts.push_back(script->get_path()); + previous_scripts.push_back(file->get_path()); + } + + Ref<Script> script = file; + if (script.is_valid()) { + notify_script_close(script); } - notify_script_close(script); } } |