aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/fakevim
diff options
context:
space:
mode:
authorhjk <hjk@qt.io>2019-03-22 12:00:39 +0100
committerhjk <hjk@qt.io>2019-03-25 14:02:47 +0000
commit1a1f261e7c7315e2f7c6fbcc4a990ffd2b6ff53e (patch)
tree1232db745ba9bf1996e6915ae8af33facccd0d0e /src/plugins/fakevim
parent266e525a4ef245459cdee77211722cf57a4f3768 (diff)
FakeVim: Fix pasting over VisualMode-selections
Task-number: QTCREATORBUG-22186 Change-Id: I218c70aaca1fc49df8e474065746688243cf9c61 Reviewed-by: Lukas Holecek <hluk@email.cz> Reviewed-by: Mitja Schmakeit <mitja.schmakeit@aucos.de> Reviewed-by: hjk <hjk@qt.io>
Diffstat (limited to 'src/plugins/fakevim')
-rw-r--r--src/plugins/fakevim/fakevimhandler.cpp11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/plugins/fakevim/fakevimhandler.cpp b/src/plugins/fakevim/fakevimhandler.cpp
index e808848de9b..955f3f60626 100644
--- a/src/plugins/fakevim/fakevimhandler.cpp
+++ b/src/plugins/fakevim/fakevimhandler.cpp
@@ -2061,7 +2061,7 @@ public:
void pasteText(bool afterCursor);
- void cutSelectedText();
+ void cutSelectedText(int reg = 0);
void joinLines(int count, bool preserveSpace = false);
@@ -7237,7 +7237,7 @@ void FakeVimHandler::Private::pasteText(bool afterCursor)
bool pasteAfter = isVisualMode() ? false : afterCursor;
if (isVisualMode())
- cutSelectedText();
+ cutSelectedText('"');
switch (rangeMode) {
case RangeCharMode: {
@@ -7318,7 +7318,7 @@ void FakeVimHandler::Private::pasteText(bool afterCursor)
endEditBlock();
}
-void FakeVimHandler::Private::cutSelectedText()
+void FakeVimHandler::Private::cutSelectedText(int reg)
{
pushUndoState();
@@ -7329,8 +7329,11 @@ void FakeVimHandler::Private::cutSelectedText()
if (visualMode && g.rangemode == RangeCharMode)
++range.endPos;
+ if (!reg)
+ reg = m_register;
+
g.submode = DeleteSubMode;
- yankText(range, m_register);
+ yankText(range, reg);
removeText(range);
g.submode = NoSubMode;