diff --git a/src/generic/grid.cpp b/src/generic/grid.cpp index 54cbb0fa17..c00a030efb 100644 --- a/src/generic/grid.cpp +++ b/src/generic/grid.cpp @@ -5287,9 +5287,31 @@ void wxGrid::OnKeyDown( wxKeyEvent& event ) case WXK_TAB: if (event.ShiftDown()) - MoveCursorLeft( FALSE ); + { + if ( GetGridCursorCol() > 0 ) + { + MoveCursorLeft( FALSE ); + } + else + { + // at left of grid + HideCellEditControl(); + SaveEditControlValue(); + } + } else - MoveCursorRight( FALSE ); + { + if ( GetGridCursorCol() > 0 ) + { + MoveCursorRight( FALSE ); + } + else + { + // at right of grid + HideCellEditControl(); + SaveEditControlValue(); + } + } break; case WXK_HOME: