Skip to content

Commit

Permalink
Merge pull request #87980 from KoBeWi/this_history_is_now…_history
Browse files Browse the repository at this point in the history
Check if history exists before discarding
  • Loading branch information
akien-mga committed Feb 5, 2024
2 parents 843c350 + 808f4e8 commit 9a63aed
Show file tree
Hide file tree
Showing 3 changed files with 8 additions and 1 deletion.
4 changes: 3 additions & 1 deletion editor/editor_data.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -649,7 +649,9 @@ void EditorData::remove_scene(int p_idx) {
EditorNode::get_singleton()->emit_signal("scene_closed", edited_scene[p_idx].path);
}

undo_redo_manager->discard_history(edited_scene[p_idx].history_id);
if (undo_redo_manager->has_history(edited_scene[p_idx].history_id)) { // Might not exist if scene failed to load.
undo_redo_manager->discard_history(edited_scene[p_idx].history_id);
}
edited_scene.remove_at(p_idx);
}

Expand Down
4 changes: 4 additions & 0 deletions editor/editor_undo_redo_manager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -375,6 +375,10 @@ bool EditorUndoRedoManager::has_redo() {
return false;
}

bool EditorUndoRedoManager::has_history(int p_idx) const {
return history_map.has(p_idx);
}

void EditorUndoRedoManager::clear_history(bool p_increase_version, int p_idx) {
if (p_idx != INVALID_HISTORY) {
History &history = get_or_create_history(p_idx);
Expand Down
1 change: 1 addition & 0 deletions editor/editor_undo_redo_manager.h
Original file line number Diff line number Diff line change
Expand Up @@ -130,6 +130,7 @@ class EditorUndoRedoManager : public Object {
bool is_history_unsaved(int p_idx);
bool has_undo();
bool has_redo();
bool has_history(int p_idx) const;

String get_current_action_name();
int get_current_action_history_id();
Expand Down

0 comments on commit 9a63aed

Please sign in to comment.