summaryrefslogtreecommitdiff
path: root/src/plugins/fakevim
diff options
context:
space:
mode:
authorMartin Aumueller <aumuell@reserv.at>2009-02-16 23:29:07 +0100
committerMartin Aumueller <aumuell@reserv.at>2009-02-17 09:13:33 +0100
commitcc850f6f5b84225a222f5acd61a365cf9d00e80b (patch)
tree8684ac45ab19d411422a9fdb58eb8c12f93dfcba /src/plugins/fakevim
parent694f34a4f1237d86eaffdcc7d3a4dc1e97ca103e (diff)
downloadqt-creator-cc850f6f5b84225a222f5acd61a365cf9d00e80b.tar.gz
fakevim: let Esc correctly cancel not yet complete commands
Diffstat (limited to 'src/plugins/fakevim')
-rw-r--r--src/plugins/fakevim/fakevimhandler.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/plugins/fakevim/fakevimhandler.cpp b/src/plugins/fakevim/fakevimhandler.cpp
index 4ed4505399..b4f74a5be5 100644
--- a/src/plugins/fakevim/fakevimhandler.cpp
+++ b/src/plugins/fakevim/fakevimhandler.cpp
@@ -1246,10 +1246,15 @@ bool FakeVimHandler::Private::handleCommandMode(int key, int unmodified,
moveRight(qMin(1, rightDist()));
recordRemoveSelectedText();
} else if (key == Key_Escape) {
- if (m_visualMode != NoVisualMode)
+ if (m_visualMode != NoVisualMode) {
leaveVisualMode();
- else
+ } else if (m_submode != NoSubMode) {
+ m_submode = NoSubMode;
+ m_subsubmode = NoSubSubMode;
+ finishMovement();
+ } else {
handled = false;
+ }
} else {
qDebug() << "IGNORED IN COMMAND MODE: " << key << text;
if (text.isEmpty())