diff --git a/ChangeLog.md b/ChangeLog.md index 60301df41..1dabe076a 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -206,6 +206,7 @@ Nazara Engine: - Added Matrix4::Decompose - ⚠ Node::Get[Position|Rotation|Scale] now defaults to local space - Fixed Node rotation when using a negative scale +- Added HandledObject::OnHandledObjectDestruction signal Nazara Development Kit: - Added ImageWidget (#139) diff --git a/include/Nazara/Core/HandledObject.hpp b/include/Nazara/Core/HandledObject.hpp index 27c8646b3..390a4e612 100644 --- a/include/Nazara/Core/HandledObject.hpp +++ b/include/Nazara/Core/HandledObject.hpp @@ -8,6 +8,7 @@ #define NAZARA_OBJECTHANDLER_HPP #include +#include #include #include @@ -41,6 +42,8 @@ namespace Nz HandledObject& operator=(const HandledObject& object); HandledObject& operator=(HandledObject&& object) noexcept; + NazaraSignal(OnHandledObjectDestruction, HandledObject* /*emitter*/); + protected: void UnregisterAllHandles() noexcept; diff --git a/include/Nazara/Core/HandledObject.inl b/include/Nazara/Core/HandledObject.inl index bc11ec645..ed0115f5b 100644 --- a/include/Nazara/Core/HandledObject.inl +++ b/include/Nazara/Core/HandledObject.inl @@ -105,6 +105,8 @@ namespace Nz { if (m_handleData) { + OnHandledObjectDestruction(this); + m_handleData->object = nullptr; m_handleData.reset(); }