diff options
author | jmb462 <jmb462@gmail.com> | 2021-03-13 18:19:29 +0100 |
---|---|---|
committer | jmb462 <jmb462@gmail.com> | 2021-03-13 18:19:29 +0100 |
commit | 49d5ec073f47366e69521cea218e57c10f234aa2 (patch) | |
tree | 309670dddc65a4b980a433d4613487afaee3ba6e /editor | |
parent | 942f5f0cb282cbc2b3fb766e3c7614e82b98dd9b (diff) |
Fix crash on closing empty modified scene
Diffstat (limited to 'editor')
-rw-r--r-- | editor/editor_node.cpp | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/editor/editor_node.cpp b/editor/editor_node.cpp index f0e53e7ef5..4c23ada5e9 100644 --- a/editor/editor_node.cpp +++ b/editor/editor_node.cpp @@ -2387,11 +2387,14 @@ void EditorNode::_menu_option_confirm(int p_option, bool p_confirmed) { _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(); - save_confirmation->get_ok_button()->set_text(TTR("Save & Close")); - save_confirmation->set_text(vformat(TTR("Save changes to '%s' before closing?"), scene_filename != "" ? scene_filename : "unsaved scene")); - save_confirmation->popup_centered(); - break; + Node *scene_root = editor_data.get_edited_scene_root(tab_closing); + if (scene_root) { + String scene_filename = scene_root->get_filename(); + save_confirmation->get_ok_button()->set_text(TTR("Save & Close")); + save_confirmation->set_text(vformat(TTR("Save changes to '%s' before closing?"), scene_filename != "" ? scene_filename : "unsaved scene")); + save_confirmation->popup_centered(); + break; + } } } else if (p_option == FILE_CLOSE) { tab_closing = editor_data.get_edited_scene(); |