mirror of
https://gitee.com/vnotex/vnote.git
synced 2025-07-05 13:59:52 +08:00
vim-mode: amend cursor position after mouse release
This commit is contained in:
parent
0976d65923
commit
2373a0326e
@ -120,6 +120,8 @@ VVim::VVim(VEditor *p_editor)
|
||||
this, &VVim::handleMousePressed);
|
||||
connect(m_editor->object(), &VEditorObject::mouseMoved,
|
||||
this, &VVim::handleMouseMoved);
|
||||
connect(m_editor->object(), &VEditorObject::mouseReleased,
|
||||
this, &VVim::handleMouseReleased);
|
||||
}
|
||||
|
||||
// Set @p_cursor's position specified by @p_positionInBlock.
|
||||
@ -6231,6 +6233,20 @@ void VVim::handleMouseMoved(QMouseEvent *p_event)
|
||||
}
|
||||
}
|
||||
|
||||
void VVim::handleMouseReleased(QMouseEvent *p_event)
|
||||
{
|
||||
Q_UNUSED(p_event);
|
||||
|
||||
if (checkMode(VimMode::Normal)) {
|
||||
QTextCursor cursor = m_editor->textCursorW();
|
||||
if (cursor.hasSelection()) {
|
||||
return;
|
||||
}
|
||||
|
||||
amendCursorPosition();
|
||||
}
|
||||
}
|
||||
|
||||
void VVim::setCursorBlockMode(VEditor *p_cursor, CursorBlock p_mode)
|
||||
{
|
||||
p_cursor->setCursorBlockModeW(p_mode);
|
||||
|
@ -223,6 +223,8 @@ private slots:
|
||||
|
||||
void handleMouseMoved(QMouseEvent *p_event);
|
||||
|
||||
void handleMouseReleased(QMouseEvent *p_event);
|
||||
|
||||
// When we display cursor as block, it makes no sense to put cursor at the
|
||||
// end of line.
|
||||
void amendCursorPosition();
|
||||
|
@ -344,6 +344,8 @@ signals:
|
||||
|
||||
void mousePressed(QMouseEvent *p_event);
|
||||
|
||||
void mouseReleased(QMouseEvent *p_event);
|
||||
|
||||
private slots:
|
||||
// Timer for find-wrap label.
|
||||
void labelTimerTimeout()
|
||||
|
@ -315,6 +315,8 @@ void VMdEditor::mouseReleaseEvent(QMouseEvent *p_event)
|
||||
}
|
||||
|
||||
VTextEdit::mouseReleaseEvent(p_event);
|
||||
|
||||
emit m_object->mouseReleased(p_event);
|
||||
}
|
||||
|
||||
void VMdEditor::mouseMoveEvent(QMouseEvent *p_event)
|
||||
|
Loading…
x
Reference in New Issue
Block a user