From: Julian Smart Date: Thu, 8 Aug 2002 09:21:56 +0000 (+0000) Subject: Applied patch [ 591998 ] EventHandler chain incorrectly updated X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/7a9c8d7492b32f310554cc0adfe2e3890a09a134?ds=inline Applied patch [ 591998 ] EventHandler chain incorrectly updated git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@16403 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/src/common/wincmn.cpp b/src/common/wincmn.cpp index e0d1e1af70..6f94732748 100644 --- a/src/common/wincmn.cpp +++ b/src/common/wincmn.cpp @@ -723,6 +723,7 @@ bool wxWindowBase::Reparent(wxWindowBase *newParent) void wxWindowBase::PushEventHandler(wxEvtHandler *handler) { handler->SetNextHandler(GetEventHandler()); + GetEventHandler()->SetPreviousHandler(handler); SetEventHandler(handler); } @@ -733,6 +734,7 @@ wxEvtHandler *wxWindowBase::PopEventHandler(bool deleteHandler) { wxEvtHandler *handlerB = handlerA->GetNextHandler(); handlerA->SetNextHandler((wxEvtHandler *)NULL); + handlerB->SetPreviousHandler((wxEvtHandler *)NULL); SetEventHandler(handlerB); if ( deleteHandler ) { @@ -765,6 +767,10 @@ bool wxWindowBase::RemoveEventHandler(wxEvtHandler *handler) SetEventHandler(handlerNext); } + if ( handlerNext ) + { + handlerNext->SetPreviousHandler ( handlerPrev ); + } handler->SetNextHandler(NULL); return TRUE;