diff --git a/plugins/builtin/include/content/providers/file_provider.hpp b/plugins/builtin/include/content/providers/file_provider.hpp index 0d9bbb90d..25e39f5aa 100644 --- a/plugins/builtin/include/content/providers/file_provider.hpp +++ b/plugins/builtin/include/content/providers/file_provider.hpp @@ -67,6 +67,7 @@ namespace hex::plugin::builtin { wolv::io::ChangeTracker m_changeTracker; std::vector m_data; bool m_loadedIntoMemory = false; + bool m_ignoreNextChangeEvent = false; std::optional m_fileStats; diff --git a/plugins/builtin/source/content/providers/file_provider.cpp b/plugins/builtin/source/content/providers/file_provider.cpp index 68cb7ff55..4e4602672 100644 --- a/plugins/builtin/source/content/providers/file_provider.cpp +++ b/plugins/builtin/source/content/providers/file_provider.cpp @@ -68,6 +68,7 @@ namespace hex::plugin::builtin { void FileProvider::save() { if (m_loadedIntoMemory) { + m_ignoreNextChangeEvent = true; m_file.open(); m_file.writeVectorAtomic(0x00, m_data); m_file.setSize(m_data.size()); @@ -333,6 +334,11 @@ namespace hex::plugin::builtin { } void FileProvider::handleFileChange() { + if (m_ignoreNextChangeEvent) { + m_ignoreNextChangeEvent = false; + return; + } + ui::PopupQuestion::open("hex.builtin.provider.file.reload_changes"_lang, [this] { this->close(); (void)this->open();