diff --git a/src/plugins/fakevim/fakevimhandler.cpp b/src/plugins/fakevim/fakevimhandler.cpp index a238e8d80c054fa181bf83e925ee584ffdc17487..ecb09e7b1c091ff56d0e79a077825209f50b1d88 100644 --- a/src/plugins/fakevim/fakevimhandler.cpp +++ b/src/plugins/fakevim/fakevimhandler.cpp @@ -1011,11 +1011,13 @@ void FakeVimHandler::Private::importSelection() QTextCursor tc = EDITOR(textCursor()); int pos = tc.position(); int anc = tc.anchor(); - // FIXME: Why? - if (pos < anc) - --anc; - else - tc.movePosition(Left, KeepAnchor); + if (tc.hasSelection()) { + // FIXME: Why? + if (pos < anc) + --anc; + else + tc.movePosition(Left, KeepAnchor); + } m_marks['<'] = anc; m_marks['>'] = pos; m_anchor = anc; @@ -1060,7 +1062,7 @@ void FakeVimHandler::Private::restoreWidget(int tabSize) m_tc.setPosition(firstPositionInLine(beginLine), MoveAnchor); m_tc.setPosition(lastPositionInLine(endLine), KeepAnchor); EDITOR(setTextCursor(m_tc)); - } else if (isVisualCharMode()) { + } else if (isVisualCharMode() || isVisualBlockMode()) { m_tc = EDITOR(textCursor()); m_tc.setPosition(m_marks['<'], MoveAnchor); m_tc.setPosition(m_marks['>'], KeepAnchor);