From e040b1a29bf48db36b25378c3e9fb9ebd0e4c788 Mon Sep 17 00:00:00 2001 From: BYP Date: Sun, 29 Sep 2024 15:19:23 -0400 Subject: [PATCH] undo can clear dirty state --- code/4ed_edit.cpp | 3 +++ code/4ed_file.cpp | 1 + code/4ed_file.h | 2 ++ 3 files changed, 6 insertions(+) diff --git a/code/4ed_edit.cpp b/code/4ed_edit.cpp index 4c8e2cec..e6c2aa97 100644 --- a/code/4ed_edit.cpp +++ b/code/4ed_edit.cpp @@ -368,6 +368,9 @@ edit_change_current_history_state(Thread_Context *tctx, Models *models, Editing_ } file->state.current_record_index = current; + if (file->state.saved_record_index == current){ + RemFlag(file->state.dirty, DirtyState_UnsavedChanges); + } } } diff --git a/code/4ed_file.cpp b/code/4ed_file.cpp index b159eeff..0148415d 100644 --- a/code/4ed_file.cpp +++ b/code/4ed_file.cpp @@ -155,6 +155,7 @@ save_file_to_name(Thread_Context *tctx, Models *models, Editing_File *file, u8 * File_Attributes new_attributes = system_save_file(scratch, (char*)file_name, saveable_string); if (new_attributes.last_write_time > 0 && using_actual_file_name){ + file->state.saved_record_index = file->state.current_record_index; file->state.save_state = FileSaveState_SavedWaitingForNotification; file_clear_dirty_flags(file); } diff --git a/code/4ed_file.h b/code/4ed_file.h index 909567f8..4251a90d 100644 --- a/code/4ed_file.h +++ b/code/4ed_file.h @@ -47,6 +47,8 @@ struct Editing_File_State{ History history; i32 current_record_index; + i32 saved_record_index; + Dirty_State dirty; File_Save_State save_state;