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 pasteText(bool afterCursor);
|
||||||
|
|
||||||
void cutSelectedText();
|
void cutSelectedText(int reg = 0);
|
||||||
|
|
||||||
void joinLines(int count, bool preserveSpace = false);
|
void joinLines(int count, bool preserveSpace = false);
|
||||||
|
|
||||||
@@ -7237,7 +7237,7 @@ void FakeVimHandler::Private::pasteText(bool afterCursor)
|
|||||||
bool pasteAfter = isVisualMode() ? false : afterCursor;
|
bool pasteAfter = isVisualMode() ? false : afterCursor;
|
||||||
|
|
||||||
if (isVisualMode())
|
if (isVisualMode())
|
||||||
cutSelectedText();
|
cutSelectedText('"');
|
||||||
|
|
||||||
switch (rangeMode) {
|
switch (rangeMode) {
|
||||||
case RangeCharMode: {
|
case RangeCharMode: {
|
||||||
@@ -7318,7 +7318,7 @@ void FakeVimHandler::Private::pasteText(bool afterCursor)
|
|||||||
endEditBlock();
|
endEditBlock();
|
||||||
}
|
}
|
||||||
|
|
||||||
void FakeVimHandler::Private::cutSelectedText()
|
void FakeVimHandler::Private::cutSelectedText(int reg)
|
||||||
{
|
{
|
||||||
pushUndoState();
|
pushUndoState();
|
||||||
|
|
||||||
@@ -7329,8 +7329,11 @@ void FakeVimHandler::Private::cutSelectedText()
|
|||||||
if (visualMode && g.rangemode == RangeCharMode)
|
if (visualMode && g.rangemode == RangeCharMode)
|
||||||
++range.endPos;
|
++range.endPos;
|
||||||
|
|
||||||
|
if (!reg)
|
||||||
|
reg = m_register;
|
||||||
|
|
||||||
g.submode = DeleteSubMode;
|
g.submode = DeleteSubMode;
|
||||||
yankText(range, m_register);
|
yankText(range, reg);
|
||||||
removeText(range);
|
removeText(range);
|
||||||
g.submode = NoSubMode;
|
g.submode = NoSubMode;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user