replaced DeleteEvtHandler with a call to RemoveEventHandler
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@13806 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
parent
2e36d5cf81
commit
74f6bbf951
@ -392,34 +392,14 @@ void wxScrollHelper::DeleteEvtHandler()
|
||||
// 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();
|
||||
delete m_handler;
|
||||
}
|
||||
//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?") );
|
||||
m_handler = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user