From a10d60a42f814cf66a790e0a18e224f5a14c17be Mon Sep 17 00:00:00 2001
From: hjk <qtc-committer@nokia.com>
Date: Mon, 16 Mar 2009 09:06:11 +0100
Subject: [PATCH] Fixes: fakevim: implement 'x' in visual line mode

---
 src/plugins/fakevim/fakevimhandler.cpp | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/src/plugins/fakevim/fakevimhandler.cpp b/src/plugins/fakevim/fakevimhandler.cpp
index 0d3dbcf7dc4..3603a728bce 100644
--- a/src/plugins/fakevim/fakevimhandler.cpp
+++ b/src/plugins/fakevim/fakevimhandler.cpp
@@ -1053,7 +1053,7 @@ EventResult FakeVimHandler::Private::handleCommandMode(int key, int unmodified,
         m_opcount = m_mvcount;
         m_mvcount.clear();
         m_submode = DeleteSubMode;
-    } else if (key == 'd' && m_visualMode == VisualLineMode) {
+    } else if ((key == 'd' || key == 'x') && m_visualMode == VisualLineMode) {
         leaveVisualMode();
         int beginLine = lineForPosition(m_marks['<']);
         int endLine = lineForPosition(m_marks['>']);
@@ -1321,7 +1321,7 @@ EventResult FakeVimHandler::Private::handleCommandMode(int key, int unmodified,
             m_moveType = MoveExclusive;
         }
         finishMovement("W");
-    } else if (key == 'x') { // = "dl"
+    } else if (key == 'x' && m_visualMode == NoVisualMode) { // = "dl"
         m_moveType = MoveExclusive;
         if (atEndOfLine())
             moveLeft();
@@ -1393,7 +1393,8 @@ EventResult FakeVimHandler::Private::handleCommandMode(int key, int unmodified,
             finishMovement();
         }
     } else {
-        qDebug() << "IGNORED IN COMMAND MODE: " << key << text;
+        qDebug() << "IGNORED IN COMMAND MODE: " << key << text
+            << " VISUAL: " << m_visualMode;
         handled = EventUnhandled;
     }
 
-- 
GitLab