-
- // We need to set the focus to some child. Either, this
- // has been done already or will be done in the next
- // idle cycle, or we will set it ourselves.
-
- if (g_delayedFocus)
- {
- if (wxGetTopLevelParent(g_delayedFocus))
- return;
- else
- g_delayedFocus = NULL;
- }
-
- wxWindow *currentFocus = wxWindow::FindFocus();
- if (currentFocus)
- {
- // I am not sure if this ever can happen,
- // since the TLW is just about to get
- // created and its children probably don't
- // have any focus.
- if (wxGetTopLevelParent(currentFocus) == win)
- return;
- }
-
- // We set the focus to the child that accepts the focus.
- wxWindowList::Node *node = win->GetChildren().GetFirst();
- while (node)
- {
- wxWindow *child = node->GetData();
- if (child->AcceptsFocus())
- {
- child->SetFocus();
- break;
- }
-
- node = node->GetNext();
- }