From e46a63b93ecea24c25a8e62ba6247cec8e148a14 Mon Sep 17 00:00:00 2001 From: Lukas Holecek Date: Sun, 17 Feb 2013 14:14:06 +0100 Subject: [PATCH] FakeVim: Fixes for visual delete with end of line selected Change-Id: I486aff7cf6a81b125a9b3b179505656efe997789 Reviewed-by: hjk --- src/plugins/fakevim/fakevim_test.cpp | 3 +-- src/plugins/fakevim/fakevimhandler.cpp | 4 ++-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/plugins/fakevim/fakevim_test.cpp b/src/plugins/fakevim/fakevim_test.cpp index c0ab46fc32c..1c7d598ccc8 100644 --- a/src/plugins/fakevim/fakevim_test.cpp +++ b/src/plugins/fakevim/fakevim_test.cpp @@ -2790,12 +2790,11 @@ void FakeVimPlugin::test_vim_visual_d() KEYS("u", lmid(0, 1)+"\n" + "|" + lmid(1)); KEYS("v$d", lmid(0, 1)+"\n" + "|" + lmid(2)); - NOT_IMPLEMENTED KEYS("v$od", lmid(0, 1)+"\n" + "|" + lmid(3)); KEYS("$v$x", lmid(0, 1)+"\n" + lmid(3,1) + "|" + lmid(4)); KEYS("0v$d", lmid(0, 1)+"\n" + "|" + lmid(5)); KEYS("$v0d", lmid(0, 1)+"\n" + "|\n" + lmid(6)); - KEYS("v$o0k$d", lmid(0, 1)+"\n" + "|" + lmid(6).mid(1)); + KEYS("v$o0k$d", "|" + lmid(6)); } void FakeVimPlugin::test_vim_Visual_d() diff --git a/src/plugins/fakevim/fakevimhandler.cpp b/src/plugins/fakevim/fakevimhandler.cpp index d83ec6ddc11..7a9f43d40c2 100644 --- a/src/plugins/fakevim/fakevimhandler.cpp +++ b/src/plugins/fakevim/fakevimhandler.cpp @@ -2659,7 +2659,7 @@ void FakeVimHandler::Private::fixSelection() } m_movetype = MoveLineWise; } - } else { + } else if (!m_anchorPastEnd) { setAnchorAndPosition(anchor() + 1, position()); } } @@ -3426,7 +3426,7 @@ EventResult FakeVimHandler::Private::handleCommandMode(const Input &input) updateMiniBuffer(); - m_positionPastEnd = (m_visualTargetColumn == -1) && isVisualMode(); + m_positionPastEnd = (m_visualTargetColumn == -1) && isVisualMode() && !atEmptyLine(); return handled ? EventHandled : EventCancelled; }