From a01fa6c17b8058884b5ffdce614e911c81d9d299 Mon Sep 17 00:00:00 2001
From: hjk <qtc-committer@nokia.com>
Date: Fri, 19 Dec 2008 15:00:06 +0100
Subject: [PATCH] implement 'M' in fakevim

---
 src/plugins/fakevim/handler.cpp | 14 +++++++++-----
 1 file changed, 9 insertions(+), 5 deletions(-)

diff --git a/src/plugins/fakevim/handler.cpp b/src/plugins/fakevim/handler.cpp
index 9a6a08dd8c3..839ee174825 100644
--- a/src/plugins/fakevim/handler.cpp
+++ b/src/plugins/fakevim/handler.cpp
@@ -287,8 +287,7 @@ void FakeVimHandler::Private::handleCommandMode(int key, const QString &text)
         m_tc.movePosition(Left, KeepAnchor, n);
         finishMovement();
     } else if (key == 'H') {
-        int firstPos = m_editor->cursorForPosition(QPoint(0, 0)).position();
-        m_tc.setPosition(firstPos, KeepAnchor);
+        m_tc = m_editor->cursorForPosition(QPoint(0, 0));
         m_tc.movePosition(Down, KeepAnchor, qMax(count() - 1, 0));
         moveToFirstNonBlankOnLine();
         finishMovement();
@@ -304,12 +303,17 @@ void FakeVimHandler::Private::handleCommandMode(int key, const QString &text)
         m_tc.movePosition(Right, KeepAnchor, qMin(count(), rightDist()));
         finishMovement();
     } else if (key == 'L') {
-        QPoint point = m_editor->geometry().bottomRight();
-        int firstPos = m_editor->cursorForPosition(point).position();
-        m_tc.setPosition(firstPos, KeepAnchor);
+        int heigth = m_editor->height();
+        m_tc = m_editor->cursorForPosition(QPoint(0, heigth));
+        m_tc.movePosition(Up, KeepAnchor, qMax(count() - 1, 0));
         m_tc.movePosition(Up, KeepAnchor, qMax(count(), 1));
         moveToFirstNonBlankOnLine();
         finishMovement();
+    } else if (key == 'M') {
+        int heigth = m_editor->height();
+        m_tc = m_editor->cursorForPosition(QPoint(0, heigth / 2));
+        moveToFirstNonBlankOnLine();
+        finishMovement();
     } else if (key == 'n') {
         search(m_lastSearchString, m_lastSearchBackward);
     } else if (key == 'N') {
-- 
GitLab