diff --git a/lib/libimhex/include/hex/providers/undo_redo/stack.hpp b/lib/libimhex/include/hex/providers/undo_redo/stack.hpp index 7e54ed100..8355724b3 100644 --- a/lib/libimhex/include/hex/providers/undo_redo/stack.hpp +++ b/lib/libimhex/include/hex/providers/undo_redo/stack.hpp @@ -33,8 +33,10 @@ namespace hex::prv::undo { template T> bool add(auto && ... args) { + auto result = this->add(std::make_unique(std::forward(args)...)); EventDataChanged::post(m_provider); - return this->add(std::make_unique(std::forward(args)...)); + + return result; } bool add(std::unique_ptr &&operation); diff --git a/plugins/builtin/include/content/views/view_data_inspector.hpp b/plugins/builtin/include/content/views/view_data_inspector.hpp index 003f71cf9..3e93bd9d4 100644 --- a/plugins/builtin/include/content/views/view_data_inspector.hpp +++ b/plugins/builtin/include/content/views/view_data_inspector.hpp @@ -29,8 +29,10 @@ namespace hex::plugin::builtin { }; private: + void invalidateData(); void updateInspectorRows(); + private: bool m_shouldInvalidate = true; diff --git a/plugins/builtin/source/content/views/view_data_inspector.cpp b/plugins/builtin/source/content/views/view_data_inspector.cpp index 970e105a7..d599020b4 100644 --- a/plugins/builtin/source/content/views/view_data_inspector.cpp +++ b/plugins/builtin/source/content/views/view_data_inspector.cpp @@ -24,7 +24,6 @@ namespace hex::plugin::builtin { ViewDataInspector::ViewDataInspector() : View::Window("hex.builtin.view.data_inspector.name", ICON_VS_INSPECT) { // Handle region selection EventRegionSelected::subscribe(this, [this](const auto ®ion) { - // Save current selection if (!ImHexApi::Provider::isValid() || region == Region::Invalid()) { m_validBytes = 0; @@ -39,6 +38,11 @@ namespace hex::plugin::builtin { m_shouldInvalidate = true; }); + EventDataChanged::subscribe(this, [this](const auto &provider) { + if (provider == m_selectedProvider) + m_shouldInvalidate = true; + }); + EventProviderClosed::subscribe(this, [this](const auto*) { m_selectedProvider = nullptr; });