From 4443532d14a97284a55ecfc80bb2f24c488aa1f1 Mon Sep 17 00:00:00 2001 From: hjk Date: Mon, 26 Dec 2011 15:16:37 +0100 Subject: [PATCH] fakevim: record position before first keystroke as jump target Change-Id: I52942a46bcd42eee4f8452a61a899d6d9b706563 Reviewed-by: hjk --- src/plugins/fakevim/fakevimhandler.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/plugins/fakevim/fakevimhandler.cpp b/src/plugins/fakevim/fakevimhandler.cpp index 1329f86fafc..2073ac1452f 100644 --- a/src/plugins/fakevim/fakevimhandler.cpp +++ b/src/plugins/fakevim/fakevimhandler.cpp @@ -904,6 +904,7 @@ public: FakeVimHandler *q; Mode m_mode; bool m_passing; // let the core see the next event + bool m_firstKeyPending; SubMode m_submode; SubSubMode m_subsubmode; Input m_subsubdata; @@ -1114,6 +1115,7 @@ void FakeVimHandler::Private::init() m_submode = NoSubMode; m_subsubmode = NoSubSubMode; m_passing = false; + m_firstKeyPending = false; m_findPending = false; m_findStartPosition = -1; m_fakeEnd = false; @@ -1245,6 +1247,11 @@ EventResult FakeVimHandler::Private::handleEvent(QKeyEvent *ev) tc.setVisualNavigation(true); setCursor(tc); + if (m_firstKeyPending) { + m_firstKeyPending = false; + recordJump(); + } + if (m_fakeEnd) moveRight(); @@ -1299,6 +1306,7 @@ void FakeVimHandler::Private::setupWidget() m_plaintextedit->setLineWrapMode(QPlainTextEdit::NoWrap); } m_wasReadOnly = EDITOR(isReadOnly()); + m_firstKeyPending = true; updateEditor(); importSelection();