don't propagate wxChildFocusEvent outside of wxTLWs

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@46451 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Václav Slavík 2007-06-13 15:35:57 +00:00
parent 105260e89f
commit 6b6bd02c07

View File

@ -141,12 +141,16 @@ void wxControlContainer::SetLastFocus(wxWindow *win)
}
// propagate the last focus upwards so that our parent can set focus back
// to us if it loses it now and regains later
wxWindow *parent = m_winParent->GetParent();
if ( parent )
// to us if it loses it now and regains later; do *not* do this if we are
// a toplevel window (e.g. wxDialog) that has another frame as its parent
if ( !m_winParent->IsTopLevel() )
{
wxChildFocusEvent eventFocus(m_winParent);
parent->GetEventHandler()->ProcessEvent(eventFocus);
wxWindow *parent = m_winParent->GetParent();
if ( parent )
{
wxChildFocusEvent eventFocus(m_winParent);
parent->GetEventHandler()->ProcessEvent(eventFocus);
}
}
}