forked from qt-creator/qt-creator
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:
@@ -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;
|
||||
|
||||
|
Reference in New Issue
Block a user