diff --git a/plugins/builtin/include/content/providers/file_provider.hpp b/plugins/builtin/include/content/providers/file_provider.hpp index 25e39f5aa..9e737faf2 100644 --- a/plugins/builtin/include/content/providers/file_provider.hpp +++ b/plugins/builtin/include/content/providers/file_provider.hpp @@ -68,6 +68,7 @@ namespace hex::plugin::builtin { std::vector m_data; bool m_loadedIntoMemory = false; bool m_ignoreNextChangeEvent = false; + bool m_changeEventAcknowledgementPending = 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 d8d3c128e..e1995c602 100644 --- a/plugins/builtin/source/content/providers/file_provider.cpp +++ b/plugins/builtin/source/content/providers/file_provider.cpp @@ -339,12 +339,21 @@ namespace hex::plugin::builtin { return; } + if(m_changeEventAcknowledgementPending) { + return; + } + + m_changeEventAcknowledgementPending = true; + ui::PopupQuestion::open("hex.builtin.provider.file.reload_changes"_lang, [this] { this->close(); (void)this->open(); getUndoStack().reapply(); + m_changeEventAcknowledgementPending = false; }, - []{}); + [this]{ + m_changeEventAcknowledgementPending = false; + }); }