X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/391b16953a9895de51f2f6ecd9237088903bc0d8..fec34ef52dad898e72dd488f939ea0db5ec09ead:/src/common/containr.cpp?ds=inline diff --git a/src/common/containr.cpp b/src/common/containr.cpp index c0156165dd..b79bf180b1 100644 --- a/src/common/containr.cpp +++ b/src/common/containr.cpp @@ -398,7 +398,7 @@ void wxControlContainer::HandleOnNavigationKey( wxNavigationKeyEvent& event ) { // just to be sure it's not used (normally this is not necessary, but // doesn't hurt neither) - m_winLastFocused = (wxWindow *)NULL; + m_winLastFocused = NULL; // start from first or last depending on where we're going node = forward ? children.GetFirst() : children.GetLast(); @@ -532,24 +532,27 @@ void wxControlContainer::HandleOnNavigationKey( wxNavigationKeyEvent& event ) wxIsKindOf(m_winLastFocused, wxRadioButton) && !m_winLastFocused->HasFlag(wxRB_SINGLE) ) { + wxRadioButton * const + lastBtn = static_cast(m_winLastFocused); + // cursor keys don't navigate out of a radio button group so // find the correct radio button to focus if ( forward ) { - child = wxGetNextButtonInGroup((wxRadioButton*)m_winLastFocused); + child = wxGetNextButtonInGroup(lastBtn); if ( !child ) { // no next button in group, set it to the first button - child = wxGetFirstButtonInGroup((wxRadioButton*)m_winLastFocused); + child = wxGetFirstButtonInGroup(lastBtn); } } else { - child = wxGetPreviousButtonInGroup((wxRadioButton*)m_winLastFocused); + child = wxGetPreviousButtonInGroup(lastBtn); if ( !child ) { // no previous button in group, set it to the last button - child = wxGetLastButtonInGroup((wxRadioButton*)m_winLastFocused); + child = wxGetLastButtonInGroup(lastBtn); } } @@ -659,7 +662,7 @@ bool wxSetFocusToChild(wxWindow *win, wxWindow **childLastFocused) else { // it doesn't count as such any more - *childLastFocused = (wxWindow *)NULL; + *childLastFocused = NULL; } }