aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins
diff options
context:
space:
mode:
authorLukas Holecek <hluk@email.cz>2014-11-12 21:06:36 +0100
committerhjk <hjk121@nokiamail.com>2014-11-17 09:11:41 +0100
commit4631da97afb4a49ec8b36e9a4aeb70cf4c561652 (patch)
tree5d87ca7ad41e089d643d7773bb70a0d260888aae /src/plugins
parentf4ffaaa278820a6253f4d92f0152f0596372fe6c (diff)
FakeVim: Allow to use "i<C-O>v"
Change-Id: Ibd669a8ac75734b18b41066255a43ee8bda19743 Reviewed-by: hjk <hjk121@nokiamail.com>
Diffstat (limited to 'src/plugins')
-rw-r--r--src/plugins/fakevim/fakevim_test.cpp2
-rw-r--r--src/plugins/fakevim/fakevimhandler.cpp4
2 files changed, 5 insertions, 1 deletions
diff --git a/src/plugins/fakevim/fakevim_test.cpp b/src/plugins/fakevim/fakevim_test.cpp
index 0508de1966..ad7b013277 100644
--- a/src/plugins/fakevim/fakevim_test.cpp
+++ b/src/plugins/fakevim/fakevim_test.cpp
@@ -748,6 +748,8 @@ void FakeVimPlugin::test_vim_insert()
KEYS("i<c-o>0x", "abc" N "x" X "def");
data.setText("abc" N "de" X "f");
KEYS("i<c-o>ggx", "x" X "abc" N "def");
+ data.setText("abc" N "def" N "ghi");
+ KEYS("i<c-o>vjlolx", "a" X "f" N "ghi");
// <INSERT> to toggle between insert and replace mode
data.setText("abc" N "def");
diff --git a/src/plugins/fakevim/fakevimhandler.cpp b/src/plugins/fakevim/fakevimhandler.cpp
index a20274ea2f..424171d670 100644
--- a/src/plugins/fakevim/fakevimhandler.cpp
+++ b/src/plugins/fakevim/fakevimhandler.cpp
@@ -3492,7 +3492,9 @@ void FakeVimHandler::Private::finishMovement(const QString &dotCommandMovement)
void FakeVimHandler::Private::leaveCurrentMode()
{
- if (g.returnToMode == CommandMode)
+ if (isVisualMode())
+ enterCommandMode(g.returnToMode);
+ else if (g.returnToMode == CommandMode)
enterCommandMode();
else if (g.returnToMode == InsertMode)
enterInsertMode();