merged fixes for accel and command event non propagation from 2.2
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@10200 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
parent
9416aa89ca
commit
3bdc265d9d
@ -943,15 +943,21 @@ bool wxEvtHandler::ProcessEvent(wxEvent& event)
|
||||
}
|
||||
|
||||
#if wxUSE_GUI
|
||||
// Carry on up the parent-child hierarchy,
|
||||
// but only if event is a command event: it wouldn't
|
||||
// make sense for a parent to receive a child's size event, for example
|
||||
// Carry on up the parent-child hierarchy, but only if event is a command
|
||||
// event: it wouldn't make sense for a parent to receive a child's size
|
||||
// event, for example
|
||||
if ( m_isWindow && event.IsCommandEvent() )
|
||||
{
|
||||
wxWindow *win = (wxWindow *)this;
|
||||
wxWindow *parent = win->GetParent();
|
||||
if (parent && !parent->IsBeingDeleted())
|
||||
return parent->GetEventHandler()->ProcessEvent(event);
|
||||
|
||||
// also, don't propagate events beyond the first top level window: it
|
||||
// doesn't make sense to process dialogs events in the parent frame
|
||||
if ( !win->IsTopLevel() )
|
||||
{
|
||||
wxWindow *parent = win->GetParent();
|
||||
if (parent && !parent->IsBeingDeleted())
|
||||
return parent->GetEventHandler()->ProcessEvent(event);
|
||||
}
|
||||
}
|
||||
#endif // wxUSE_GUI
|
||||
|
||||
|
@ -1060,6 +1060,12 @@ bool wxApp::ProcessMessage(WXMSG *wxmsg)
|
||||
{
|
||||
if ( wnd->MSWTranslateMessage(wxmsg) )
|
||||
return TRUE;
|
||||
|
||||
// stop at first top level window, i.e. don't try to process the key
|
||||
// strokes originating in a dialog using the accelerators of the parent
|
||||
// frame - this doesn't make much sense
|
||||
if ( wnd->IsTopLevel() )
|
||||
break;
|
||||
}
|
||||
|
||||
// Anyone for a non-translation message? Try youngest descendants first.
|
||||
|
Loading…
Reference in New Issue
Block a user