X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/8253c7fda19e5f1c58326fa4fa076ca21684aade..e72b421324f29e199e3321245fa5a92136233a85:/src/generic/panelg.cpp diff --git a/src/generic/panelg.cpp b/src/generic/panelg.cpp index 24fcb03ba4..2a91143d97 100644 --- a/src/generic/panelg.cpp +++ b/src/generic/panelg.cpp @@ -121,9 +121,11 @@ void wxPanel::OnSize(wxSizeEvent& WXUNUSED(event)) 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) ) @@ -144,8 +146,6 @@ void wxPanel::OnNavigationKey( wxNavigationKeyEvent& 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 @@ -274,6 +274,7 @@ void wxPanel::OnNavigationKey( wxNavigationKeyEvent& event ) } //else: the child manages its focus itself + event.Skip( FALSE ); return; } @@ -313,7 +314,8 @@ void wxPanel::SetFocus() // think my addition to OnNavigationKey() above takes care of it. // Keeping #ifdef __WXGTK__ for now, but please try removing it and see // what happens. - // RR: Removed for now. + // + // RR: Removed for now. Let's see what happens.. if ( !SetFocusToChild() ) {