void wxPanel::OnNavigationKey( wxNavigationKeyEvent& event )
{
- // there is not much to do if we have only one child (or not at all) and
- // we're not interested in "notebook page change" events here
- if ( (GetChildren().GetCount() < 2) || event.IsWindowChange() )
+ const wxWindowList& children = GetChildren();
+
+ // there is not much to do if we don't have children and we're not
+ // interested in "notebook page change" events here
+ if ( !children.GetCount() || event.IsWindowChange() )
{
wxWindow *parent = GetParent();
if ( !parent || !parent->GetEventHandler()->ProcessEvent(event) )
// the event is propagated downwards if the event emitter was our parent
bool goingDown = event.GetEventObject() == GetParent();
- const wxWindowList& children = GetChildren();
-
// we should start from the first/last control and not from the one which
// had focus the last time if we're propagating the event downwards because
// for our parent we look like a single control
if ( focussed_child_of_parent->IsTopLevel() )
break;
- // is the parent a panel?
- wxPanel *panel = wxDynamicCast(parent, wxPanel);
- if (panel)
- {
- event.SetCurrentFocus( focussed_child_of_parent );
- if (parent->GetEventHandler()->ProcessEvent( event ))
- return;
- }
+ event.SetCurrentFocus( focussed_child_of_parent );
+ if (parent->GetEventHandler()->ProcessEvent( event ))
+ return;
focussed_child_of_parent = parent;
}
}
//else: the child manages its focus itself
+ event.Skip( FALSE );
return;
}
// think my addition to OnNavigationKey() above takes care of it.
// Keeping #ifdef __WXGTK__ for now, but please try removing it and see
// what happens.
-
-#ifdef __WXGTK__
- m_winLastFocused = (wxWindow *)NULL;
-#endif // 0
+ //
+ // RR: Removed for now. Let's see what happens..
if ( !SetFocusToChild() )
{
void wxPanel::OnFocus(wxFocusEvent& event)
{
- wxLogTrace(_T("focus"), _T("OnFocus on wxPanel 0x%08x."), GetHandle());
+ wxLogTrace(_T("focus"), _T("OnFocus on wxPanel 0x%08x, name: %s"), GetHandle(), GetName().c_str() );
// If the panel gets the focus *by way of getting clicked on*
// we move the focus to either the last window that had the