Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarkus Keller2012-06-08 14:24:42 +0000
committerMarkus Keller2012-06-08 14:24:42 +0000
commit03b415b2980f64697216f297f75295c1721d3ceb (patch)
treeeab46fd6513dad93aa94b77940555e9cfc125afe
parentbe62bc7f63b57de66d4a2edb478c3f4942f3492f (diff)
downloadeclipse.platform.text-03b415b2980f64697216f297f75295c1721d3ceb.tar.gz
eclipse.platform.text-03b415b2980f64697216f297f75295c1721d3ceb.tar.xz
eclipse.platform.text-03b415b2980f64697216f297f75295c1721d3ceb.zip
Bug 26873: [navigation] Should not have to move mouse to get link
behaviour
-rw-r--r--org.eclipse.jface.text/META-INF/MANIFEST.MF2
-rw-r--r--org.eclipse.jface.text/src/org/eclipse/jface/text/hyperlink/HyperlinkManager.java40
2 files changed, 29 insertions, 13 deletions
diff --git a/org.eclipse.jface.text/META-INF/MANIFEST.MF b/org.eclipse.jface.text/META-INF/MANIFEST.MF
index fcac8044396..3355da30ead 100644
--- a/org.eclipse.jface.text/META-INF/MANIFEST.MF
+++ b/org.eclipse.jface.text/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
Bundle-SymbolicName: org.eclipse.jface.text
-Bundle-Version: 3.8.0.qualifier
+Bundle-Version: 3.8.100.qualifier
Bundle-Vendor: %providerName
Bundle-Localization: plugin
Export-Package:
diff --git a/org.eclipse.jface.text/src/org/eclipse/jface/text/hyperlink/HyperlinkManager.java b/org.eclipse.jface.text/src/org/eclipse/jface/text/hyperlink/HyperlinkManager.java
index a683e05cf41..f29af59fd69 100644
--- a/org.eclipse.jface.text/src/org/eclipse/jface/text/hyperlink/HyperlinkManager.java
+++ b/org.eclipse.jface.text/src/org/eclipse/jface/text/hyperlink/HyperlinkManager.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2000, 2010 IBM Corporation and others.
+ * Copyright (c) 2000, 2012 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -351,18 +351,13 @@ public class HyperlinkManager implements ITextListener, Listener, KeyListener, M
*/
public void keyPressed(KeyEvent event) {
- if (fActive) {
- deactivate();
- return;
- }
-
- if (!isRegisteredStateMask(event.keyCode)) {
+ if (!isRegisteredStateMask((event.keyCode | event.stateMask) & SWT.MODIFIER_MASK)) {
deactivate();
return;
}
fActive= true;
- fActiveHyperlinkStateMask= event.keyCode;
+// fActiveHyperlinkStateMask= event.keyCode; // unnecessary and doesn't work for Alt (at least on Windows)
// removed for #25871 (hyperlinks could interact with typing)
//
@@ -396,18 +391,39 @@ public class HyperlinkManager implements ITextListener, Listener, KeyListener, M
*/
public void mouseDown(MouseEvent event) {
- if (!fActive)
- return;
+ if (fHyperlinkPresenter instanceof IHyperlinkPresenterExtension) {
+ if (!((IHyperlinkPresenterExtension)fHyperlinkPresenter).canHideHyperlinks())
+ return;
+ }
- if (event.stateMask != fActiveHyperlinkStateMask) {
+ if (!isRegisteredStateMask(event.stateMask)) {
+ if (fActive)
+ deactivate();
+
+ return;
+ }
+
+ if (event.button != 1) {
+ deactivate();
+ return;
+ }
+
+ fActive= true;
+ fActiveHyperlinkStateMask= event.stateMask & SWT.MODIFIER_MASK;
+
+ StyledText text= fTextViewer.getTextWidget();
+ if (text == null || text.isDisposed()) {
deactivate();
return;
}
- if (event.button != 1) {
+ if (text.getSelectionCount() != 0) {
deactivate();
return;
}
+
+ fActiveHyperlinks= findHyperlinks();
+ showHyperlinks(false);
}
/*

Back to the top