|
@@ -3007,16 +3007,19 @@ void EditorNode::_menu_option_confirm(int p_option, bool p_confirmed) {
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
- if (unsaved_cache && !p_confirmed) {
|
|
|
- confirmation->set_ok_button_text(TTR("Save & Reload"));
|
|
|
- unsaved_message = _get_unsaved_scene_dialog_text(scene_filename, started_timestamp);
|
|
|
- confirmation->set_text(unsaved_message + "\n\n" + TTR("Save before reloading the scene?"));
|
|
|
- confirmation->popup_centered();
|
|
|
- break;
|
|
|
+ if (unsaved_cache) {
|
|
|
+ if (!p_confirmed) {
|
|
|
+ confirmation->set_ok_button_text(TTRC("Save & Reload"));
|
|
|
+ unsaved_message = _get_unsaved_scene_dialog_text(scene_filename, started_timestamp);
|
|
|
+ confirmation->set_text(unsaved_message + "\n\n" + TTR("Save before reloading the scene?"));
|
|
|
+ confirmation->popup_centered();
|
|
|
+ confirmation_button->grab_focus();
|
|
|
+ break;
|
|
|
+ } else {
|
|
|
+ _save_scene_with_preview(scene_filename);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
- _save_scene_with_preview(scene_filename);
|
|
|
-
|
|
|
_discard_changes();
|
|
|
} break;
|
|
|
|
|
@@ -7809,7 +7812,7 @@ EditorNode::EditorNode() {
|
|
|
gui_base->add_child(orphan_resources);
|
|
|
|
|
|
confirmation = memnew(ConfirmationDialog);
|
|
|
- confirmation->add_button(TTRC("Don't Save"), DisplayServer::get_singleton()->get_swap_cancel_ok(), "discard");
|
|
|
+ confirmation_button = confirmation->add_button(TTRC("Don't Save"), DisplayServer::get_singleton()->get_swap_cancel_ok(), "discard");
|
|
|
gui_base->add_child(confirmation);
|
|
|
confirmation->set_min_size(Vector2(450.0 * EDSCALE, 0));
|
|
|
confirmation->connect(SceneStringName(confirmed), callable_mp(this, &EditorNode::_menu_confirm_current));
|