From eebe9e2fc839308554cbdd7681f8fe41935e2947 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Thorbj=C3=B8rn=20Lindeijer?= <thorbjorn.lindeijer@nokia.com>
Date: Tue, 24 Mar 2009 11:12:24 +0100
Subject: [PATCH] Clear link emulation when Ctrl is released

---
 src/plugins/cppeditor/cppeditor.cpp | 9 +++++++++
 src/plugins/cppeditor/cppeditor.h   | 7 ++++---
 2 files changed, 13 insertions(+), 3 deletions(-)

diff --git a/src/plugins/cppeditor/cppeditor.cpp b/src/plugins/cppeditor/cppeditor.cpp
index 1976195c91f..9f1e7a8bef5 100644
--- a/src/plugins/cppeditor/cppeditor.cpp
+++ b/src/plugins/cppeditor/cppeditor.cpp
@@ -832,6 +832,15 @@ void CPPEditor::mouseReleaseEvent(QMouseEvent *e)
     TextEditor::BaseTextEditor::mouseReleaseEvent(e);
 }
 
+void CPPEditor::keyReleaseEvent(QKeyEvent *e)
+{
+    // Clear link emulation when Ctrl is released
+    if (e->key() == Qt::Key_Control) {
+        setExtraSelections(OtherSelection, QList<QTextEdit::ExtraSelection>());
+        viewport()->setCursor(Qt::IBeamCursor);
+    }
+}
+
 QList<int> CPPEditorEditable::context() const
 {
     return m_context;
diff --git a/src/plugins/cppeditor/cppeditor.h b/src/plugins/cppeditor/cppeditor.h
index c54b33a0cb0..3414d79f1c6 100644
--- a/src/plugins/cppeditor/cppeditor.h
+++ b/src/plugins/cppeditor/cppeditor.h
@@ -96,9 +96,10 @@ public slots:
     void deleteEndOfToken();
 
 protected:
-    void contextMenuEvent(QContextMenuEvent *e);
-    void mouseMoveEvent(QMouseEvent *e);
-    void mouseReleaseEvent(QMouseEvent *e);
+    void contextMenuEvent(QContextMenuEvent *);
+    void mouseMoveEvent(QMouseEvent *);
+    void mouseReleaseEvent(QMouseEvent *);
+    void keyReleaseEvent(QKeyEvent *);
 
     TextEditor::BaseTextEditorEditable *createEditableInterface();
 
-- 
GitLab