diff --git a/src/events.cpp b/src/events.cpp index dc563692a..29647fa6a 100755 --- a/src/events.cpp +++ b/src/events.cpp @@ -16,6 +16,7 @@ bool E_RegisterHandler(DStaticEventHandler* handler) if (handler->next) handler->next->prev = handler; E_FirstEventHandler = handler; + if (handler->IsStatic()) handler->ObjectFlags |= OF_Fixed; return true; } @@ -32,6 +33,11 @@ bool E_UnregisterHandler(DStaticEventHandler* handler) handler->next->prev = handler->prev; if (handler == E_FirstEventHandler) E_FirstEventHandler = handler->next; + if (handler->IsStatic()) + { + handler->ObjectFlags |= OF_YesReallyDelete; + delete handler; + } return true; }