git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@13806
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
// search for m_handler in the handler list
if ( m_win && m_handler )
{
// search for m_handler in the handler list
if ( m_win && m_handler )
{
- wxEvtHandler *handlerPrev = NULL,
- *handler = m_win->GetEventHandler();
- while ( handler )
+ if ( m_win->RemoveEventHandler(m_handler) )
- if ( handler == m_handler )
- {
- wxEvtHandler *handlerNext = handler->GetNextHandler();
- if ( handlerPrev )
- {
- handlerPrev->SetNextHandler(handlerNext);
- }
- else
- {
- m_win->SetEventHandler(handlerNext);
- }
-
- handler->SetNextHandler(NULL);
- delete handler;
- m_handler = NULL;
-
- return;
- }
-
- handlerPrev = handler;
- handler = handler->GetNextHandler();
+ //else: something is very wrong, so better [maybe] leak memory than
+ // risk a crash because of double deletion
- wxFAIL_MSG( _T("where has our event handler gone?") );