From db150ab61d7197f9a7a6d3bb51c4dc36f9987ed2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Aum=C3=BCller?= <aumuell@reserv.at> Date: Fri, 19 Feb 2010 13:01:39 +0100 Subject: [PATCH] fakevim: make sure that cursor is positioned before the character where text would be inserted with 'i' Merge-request: 113 Reviewed-by: hjk <qtc-committer@nokia.com> --- src/plugins/fakevim/fakevimhandler.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/plugins/fakevim/fakevimhandler.cpp b/src/plugins/fakevim/fakevimhandler.cpp index a734b46a46c..06239d4089f 100644 --- a/src/plugins/fakevim/fakevimhandler.cpp +++ b/src/plugins/fakevim/fakevimhandler.cpp @@ -650,6 +650,9 @@ EventResult FakeVimHandler::Private::handleEvent(QKeyEvent *ev) Range range(m_oldPosition, m_tc.position()); m_lastInsertion.append(text(range)); } + } else if (!isVisualMode()) { + if (atEndOfLine()) + moveLeft(); } } @@ -3366,6 +3369,8 @@ void FakeVimHandler::Private::undo() if (m_undoCursorPosition.contains(rev)) m_tc.setPosition(m_undoCursorPosition[rev]); + if (atEndOfLine()) + moveLeft(); } void FakeVimHandler::Private::redo() @@ -3398,6 +3403,8 @@ void FakeVimHandler::Private::enterCommandMode() { EDITOR(setCursorWidth(m_cursorWidth)); EDITOR(setOverwriteMode(true)); + if (atEndOfLine()) + moveLeft(); m_mode = CommandMode; } -- GitLab