Fix history mismatch

Set the properties of the resource's proxy instead of setting the resource's
properties directly. (For action "Set ...")

Update the path of the edited scene when saving the scene. (For action "Add
atlas source")
This commit is contained in:
Rindbee 2023-06-29 15:38:19 +08:00
parent b8ed596769
commit 28db5e7649
2 changed files with 5 additions and 2 deletions

View File

@ -1982,6 +1982,9 @@ void EditorNode::_dialog_action(String p_file) {
if (scene_idx != -1) {
_discard_changes();
} else {
// Update the path of the edited scene to ensure later do/undo action history matches.
editor_data.set_scene_path(editor_data.get_edited_scene(), p_file);
}
}

View File

@ -2156,7 +2156,7 @@ void TileSetAtlasSourceEditor::_undo_redo_inspector_callback(Object *p_undo_redo
Ref<TileSetAtlasSource> atlas_source = atlas_source_proxy->get_edited();
ERR_FAIL_COND(!atlas_source.is_valid());
UndoRedo *internal_undo_redo = undo_redo_man->get_history_for_object(atlas_source.ptr()).undo_redo;
UndoRedo *internal_undo_redo = undo_redo_man->get_history_for_object(atlas_source_proxy).undo_redo;
internal_undo_redo->start_force_keep_in_merge_ends();
PackedVector2Array arr;
@ -2180,7 +2180,7 @@ void TileSetAtlasSourceEditor::_undo_redo_inspector_callback(Object *p_undo_redo
String prefix = vformat("%d:%d/", coords.x, coords.y);
for (PropertyInfo pi : properties) {
if (pi.name.begins_with(prefix)) {
ADD_UNDO(atlas_source.ptr(), pi.name);
ADD_UNDO(atlas_source_proxy, pi.name);
}
}
}