diff options
author | hjk <hjk@qt.io> | 2019-03-22 12:00:39 +0100 |
---|---|---|
committer | hjk <hjk@qt.io> | 2019-03-25 14:02:47 +0000 |
commit | 1a1f261e7c7315e2f7c6fbcc4a990ffd2b6ff53e (patch) | |
tree | 1232db745ba9bf1996e6915ae8af33facccd0d0e /src/plugins/fakevim | |
parent | 266e525a4ef245459cdee77211722cf57a4f3768 (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.cpp | 11 |
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; |