void wxControlContainer::SetLastFocus(wxWindow *win)
{
// find the last _immediate_ child which got focus
- while ( win )
+ while ( win && win != m_winParent )
{
- wxWindow *parent = win->GetParent();
- if ( parent == m_winParent )
- break;
-
- win = parent;
+ win = win->GetParent();
}
wxASSERT_MSG( win, _T("attempt to set last focus to not a child?") );
// focus handling
// ----------------------------------------------------------------------------
-void wxControlContainer::DoSetFocus()
+bool wxControlContainer::DoSetFocus()
{
wxLogTrace(_T("focus"), _T("SetFocus on wxPanel 0x%08x."),
m_winParent->GetHandle());
//
// RR: Removed for now. Let's see what happens..
- if ( !SetFocusToChild() )
- {
- m_winParent->SetFocus();
- }
+ return SetFocusToChild();
}
void wxControlContainer::HandleOnFocus(wxFocusEvent& event)