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>
This commit is contained in:
hjk
2019-03-22 12:00:39 +01:00
parent 266e525a4e
commit 1a1f261e7c

View File

@@ -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;