Applied patch [ 578052 ] Doc/View and recursion problems

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@16215 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Julian Smart
2002-07-19 20:13:18 +00:00
parent c1dfe27754
commit 377a219ac7

View File

@@ -105,16 +105,28 @@ wxDocMDIChildFrame::~wxDocMDIChildFrame(void)
// Extend event processing to search the view's event table // Extend event processing to search the view's event table
bool wxDocMDIChildFrame::ProcessEvent(wxEvent& event) bool wxDocMDIChildFrame::ProcessEvent(wxEvent& event)
{ {
static wxEvent *ActiveEvent = NULL;
// Break recursion loops
if (ActiveEvent == &event)
return false;
ActiveEvent = &event;
bool ret;
if ( !m_childView || ! m_childView->ProcessEvent(event) ) if ( !m_childView || ! m_childView->ProcessEvent(event) )
{ {
// Only hand up to the parent if it's a menu command // Only hand up to the parent if it's a menu command
if (!event.IsKindOf(CLASSINFO(wxCommandEvent)) || !GetParent() || !GetParent()->ProcessEvent(event)) if (!event.IsKindOf(CLASSINFO(wxCommandEvent)) || !GetParent() || !GetParent()->ProcessEvent(event))
return wxEvtHandler::ProcessEvent(event); ret = wxEvtHandler::ProcessEvent(event);
else else
return TRUE; ret = TRUE;
} }
else else
return TRUE; ret = TRUE;
ActiveEvent = NULL;
return ret;
} }
void wxDocMDIChildFrame::OnActivate(wxActivateEvent& event) void wxDocMDIChildFrame::OnActivate(wxActivateEvent& event)