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:
@@ -943,16 +943,22 @@ bool wxEvtHandler::ProcessEvent(wxEvent& event)
|
|||||||
}
|
}
|
||||||
|
|
||||||
#if wxUSE_GUI
|
#if wxUSE_GUI
|
||||||
// Carry on up the parent-child hierarchy,
|
// Carry on up the parent-child hierarchy, but only if event is a command
|
||||||
// but only if event is a command event: it wouldn't
|
// event: it wouldn't make sense for a parent to receive a child's size
|
||||||
// make sense for a parent to receive a child's size event, for example
|
// event, for example
|
||||||
if ( m_isWindow && event.IsCommandEvent() )
|
if ( m_isWindow && event.IsCommandEvent() )
|
||||||
{
|
{
|
||||||
wxWindow *win = (wxWindow *)this;
|
wxWindow *win = (wxWindow *)this;
|
||||||
|
|
||||||
|
// 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();
|
wxWindow *parent = win->GetParent();
|
||||||
if (parent && !parent->IsBeingDeleted())
|
if (parent && !parent->IsBeingDeleted())
|
||||||
return parent->GetEventHandler()->ProcessEvent(event);
|
return parent->GetEventHandler()->ProcessEvent(event);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
#endif // wxUSE_GUI
|
#endif // wxUSE_GUI
|
||||||
|
|
||||||
// Last try - application object.
|
// Last try - application object.
|
||||||
|
@@ -1060,6 +1060,12 @@ bool wxApp::ProcessMessage(WXMSG *wxmsg)
|
|||||||
{
|
{
|
||||||
if ( wnd->MSWTranslateMessage(wxmsg) )
|
if ( wnd->MSWTranslateMessage(wxmsg) )
|
||||||
return TRUE;
|
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.
|
// Anyone for a non-translation message? Try youngest descendants first.
|
||||||
|
Reference in New Issue
Block a user