diff --git a/src/common/datavcmn.cpp b/src/common/datavcmn.cpp index e94da72067..3f4f8299af 100644 --- a/src/common/datavcmn.cpp +++ b/src/common/datavcmn.cpp @@ -1044,17 +1044,20 @@ void wxDataViewEditorCtrlEvtHandler::OnChar( wxKeyEvent &event ) { switch ( event.m_keyCode ) { - case WXK_RETURN: - m_finished = true; - m_owner->FinishEditing(); - break; - case WXK_ESCAPE: - { m_finished = true; m_owner->CancelEditing(); break; - } + + case WXK_RETURN: + if ( !event.HasAnyModifiers() ) + { + m_finished = true; + m_owner->FinishEditing(); + break; + } + wxFALLTHROUGH; // Ctrl/Alt/Shift-Enter is not handled specially + default: event.Skip(); } diff --git a/src/generic/datavgen.cpp b/src/generic/datavgen.cpp index cd2c2b4d95..3cad87b018 100644 --- a/src/generic/datavgen.cpp +++ b/src/generic/datavgen.cpp @@ -3632,7 +3632,17 @@ void wxDataViewMainWindow::OnCharHook(wxKeyEvent& event) return; case WXK_RETURN: + // Shift-Enter is not special neither. + if ( event.ShiftDown() ) + break; + wxFALLTHROUGH; + case WXK_TAB: + // Ctrl/Alt-Tab or Enter could be used for something else, so + // don't handle them here. + if ( event.HasModifiers() ) + break; + m_editorRenderer->FinishEditing(); return; }