git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56479
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
if ( keycode == WXK_TAB )
{
if ( keycode == WXK_TAB )
{
+ wxWindow* mainControl;
+
+ if ( HasInternalFlag(wxPG_FL_IN_MANAGER) )
+ mainControl = GetParent();
+ else
+ mainControl = this;
+
if ( !event.ShiftDown() )
{
if ( !editorFocused && m_wndEditor )
if ( !event.ShiftDown() )
{
if ( !editorFocused && m_wndEditor )
DoSelectProperty( m_selected, wxPG_SEL_FOCUS );
DoSelectProperty( m_selected, wxPG_SEL_FOCUS );
+ {
+ // Tab traversal workaround for platforms on which
+ // wxWindow::Navigate() may navigate into first child
+ // instead of next sibling. Does not work perfectly
+ // in every scenario (for instance, when property grid
+ // is either first or last control).
+ #if defined(__WXGTK__)
+ wxWindow* sibling = mainControl->GetNextSibling();
+ if ( sibling )
+ sibling->SetFocusFromKbd();
+ #else
Navigate(wxNavigationKeyEvent::IsForward);
Navigate(wxNavigationKeyEvent::IsForward);
}
else
{
if ( editorFocused )
}
else
{
if ( editorFocused )
+ {
+ #if defined(__WXGTK__)
+ wxWindow* sibling = mainControl->GetPrevSibling();
+ if ( sibling )
+ sibling->SetFocusFromKbd();
+ #else
Navigate(wxNavigationKeyEvent::IsBackward);
Navigate(wxNavigationKeyEvent::IsBackward);