- // If navigating using tabs, skip all but the first radio button in a group.
- if (wxIsKindOf(child, wxRadioButton))
+ // 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);
+ if ( !child )
+ {
+ // no next button in group, set it to the first button
+ child = wxGetFirstButtonInGroup((wxRadioButton*)m_winLastFocused);
+ }
+ }
+ else
+ {
+ child = wxGetPreviousButtonInGroup((wxRadioButton*)m_winLastFocused);
+ if ( !child )
+ {
+ // no previous button in group, set it to the last button
+ child = wxGetLastButtonInGroup((wxRadioButton*)m_winLastFocused);
+ }
+ }
+
+ if ( child == m_winLastFocused )