X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/7e55544629f172d617ad2d3772fe615bf5cd4830..da1158bb912c4aef45c07ce2de5b69ea2773f65e:/src/common/wincmn.cpp 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;