diff --git a/libs/widgets/qcodeedit.cpp b/libs/widgets/qcodeedit.cpp index f337932..e6f8235 100644 --- a/libs/widgets/qcodeedit.cpp +++ b/libs/widgets/qcodeedit.cpp @@ -26,6 +26,7 @@ class _QCE_Viewport: public QWidget { public: _QCE_Viewport(QWidget * p = 0): QWidget(p) { setObjectName("__qcodeedit_viewport__"); + setMouseTracking(true); //setCursor(Qt::IBeamCursor); } @@ -468,14 +469,17 @@ bool QCodeEdit::eventFilter(QObject * o, QEvent * e) { hideHelp(); QMouseEvent * me = (QMouseEvent*)e; if (me->modifiers().testFlag(Qt::ControlModifier) && (me->button() == Qt::LeftButton)) - gotoLink(); + if (!hasBlockSelection() && !ui->textCode->textCursor().hasSelection()) + gotoLink(); } break; case QEvent::MouseMove: { if (!completer->isHidden()) break; QMouseEvent * me = (QMouseEvent*)e; - switchBlockSelection(); + if (me->buttons() != 0) + switchBlockSelection(); if (me->modifiers().testFlag(Qt::ControlModifier)) - showLink(); + if (!hasBlockSelection() && !ui->textCode->textCursor().hasSelection()) + showLink(); } break; case QEvent::Paint: resizeOverlay(); @@ -697,7 +701,8 @@ bool QCodeEdit::codeKeyEvent(QKeyEvent * ke) { } break; case Qt::Key_Control: - showLink(); + if (!hasBlockSelection() && !ui->textCode->textCursor().hasSelection()) + showLink(); break; case Qt::Key_F1: if (widget_help->isVisible())