diff --git a/src/plugins/texteditor/basetexteditor.cpp b/src/plugins/texteditor/basetexteditor.cpp index 69f135430ad..9233f2adf72 100644 --- a/src/plugins/texteditor/basetexteditor.cpp +++ b/src/plugins/texteditor/basetexteditor.cpp @@ -2622,11 +2622,7 @@ void BaseTextEditorWidget::processTooltipRequest(const QTextCursor &c) bool BaseTextEditorWidget::viewportEvent(QEvent *event) { d->m_contentsChanged = false; - if (event->type() == QEvent::ContextMenu) { - const QContextMenuEvent *ce = static_cast(event); - if (ce->reason() == QContextMenuEvent::Mouse && !textCursor().hasSelection()) - setTextCursor(cursorForPosition(ce->pos())); - } else if (event->type() == QEvent::ToolTip) { + if (event->type() == QEvent::ToolTip) { if (QApplication::keyboardModifiers() & Qt::ControlModifier || (!(QApplication::keyboardModifiers() & Qt::ShiftModifier) && d->m_behaviorSettings.m_constrainHoverTooltips)) { @@ -4223,6 +4219,12 @@ void BaseTextEditorWidget::mousePressEvent(QMouseEvent *e) if (d->m_currentLink.isValid()) d->m_linkPressed = true; } + } else if (e->button() == Qt::RightButton) { + int eventCursorPosition = cursorForPosition(e->pos()).position(); + if (eventCursorPosition < textCursor().selectionStart() + || eventCursorPosition > textCursor().selectionEnd()) { + setTextCursor(cursorForPosition(e->pos())); + } } #ifdef Q_OS_LINUX