diff --git a/plugins/builtin/include/content/providers/view_provider.hpp b/plugins/builtin/include/content/providers/view_provider.hpp index ebbc9d533..4c1dd640d 100644 --- a/plugins/builtin/include/content/providers/view_provider.hpp +++ b/plugins/builtin/include/content/providers/view_provider.hpp @@ -3,12 +3,21 @@ #include #include +#include + namespace hex::plugin::builtin { class ViewProvider : public hex::prv::Provider { public: - explicit ViewProvider() = default; - ~ViewProvider() override = default; + explicit ViewProvider() { + EventManager::subscribe(this, [this](prv::Provider *provider, bool*) { + if (this->m_provider == provider) + ImHexApi::Provider::remove(this, true); + }); + } + ~ViewProvider() override { + EventManager::unsubscribe(this); + } [[nodiscard]] bool isAvailable() const override { if (this->m_provider == nullptr)