Applied patch [ 591998 ] EventHandler chain incorrectly updated

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@16403 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Julian Smart
2002-08-08 09:21:56 +00:00
parent c29582d0b0
commit 7a9c8d7492

View File

@@ -723,6 +723,7 @@ bool wxWindowBase::Reparent(wxWindowBase *newParent)
void wxWindowBase::PushEventHandler(wxEvtHandler *handler) void wxWindowBase::PushEventHandler(wxEvtHandler *handler)
{ {
handler->SetNextHandler(GetEventHandler()); handler->SetNextHandler(GetEventHandler());
GetEventHandler()->SetPreviousHandler(handler);
SetEventHandler(handler); SetEventHandler(handler);
} }
@@ -733,6 +734,7 @@ wxEvtHandler *wxWindowBase::PopEventHandler(bool deleteHandler)
{ {
wxEvtHandler *handlerB = handlerA->GetNextHandler(); wxEvtHandler *handlerB = handlerA->GetNextHandler();
handlerA->SetNextHandler((wxEvtHandler *)NULL); handlerA->SetNextHandler((wxEvtHandler *)NULL);
handlerB->SetPreviousHandler((wxEvtHandler *)NULL);
SetEventHandler(handlerB); SetEventHandler(handlerB);
if ( deleteHandler ) if ( deleteHandler )
{ {
@@ -765,6 +767,10 @@ bool wxWindowBase::RemoveEventHandler(wxEvtHandler *handler)
SetEventHandler(handlerNext); SetEventHandler(handlerNext);
} }
if ( handlerNext )
{
handlerNext->SetPreviousHandler ( handlerPrev );
}
handler->SetNextHandler(NULL); handler->SetNextHandler(NULL);
return TRUE; return TRUE;