Fix tab navigation into radio boxes in wxMSW.
Radio boxes refused to take focus from keyboard as their wxControlContainer::AcceptsFocusFromKeyboard() always returned false because the base wxStaticBox class disabled setting the focus to the control itself and wxRadioBox doesn't have any children at wx level in wxMSW. Fix this by reenabling "self focus" in wxRadioBox to make it possible to accept focus from keyboard. This is not ideal as it doesn't take into account e.g. radio boxes without any items or with all items disabled or hidden, but this should be rare and would require virtualizing all children access at wxControlContainer level, i.e. would be quite non-trivial so don't do this for now as this, at least, fixes the navigation in common/normal case. Also remove the unnecessary AcceptsFocus() override from wxRadioBox as this is now done at wxControlContainer level. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74583 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -62,7 +62,14 @@ public:
|
||||
|
||||
// This can be called by the window to indicate that it never wants to have
|
||||
// the focus for itself.
|
||||
void DisableSelfFocus() { m_acceptsFocusSelf = false; }
|
||||
void DisableSelfFocus()
|
||||
{ m_acceptsFocusSelf = false; UpdateParentCanFocus(); }
|
||||
|
||||
// This can be called to undo the effect of a previous DisableSelfFocus()
|
||||
// (otherwise calling it is not necessary as the window does accept focus
|
||||
// by default).
|
||||
void EnableSelfFocus()
|
||||
{ m_acceptsFocusSelf = true; UpdateParentCanFocus(); }
|
||||
|
||||
// should be called from SetFocus(), returns false if we did nothing with
|
||||
// the focus and the default processing should take place
|
||||
|
Reference in New Issue
Block a user