diff options
author | Markus Keller | 2012-06-08 14:24:42 +0000 |
---|---|---|
committer | Markus Keller | 2012-06-08 14:24:42 +0000 |
commit | 03b415b2980f64697216f297f75295c1721d3ceb (patch) | |
tree | eab46fd6513dad93aa94b77940555e9cfc125afe | |
parent | be62bc7f63b57de66d4a2edb478c3f4942f3492f (diff) | |
download | eclipse.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.MF | 2 | ||||
-rw-r--r-- | org.eclipse.jface.text/src/org/eclipse/jface/text/hyperlink/HyperlinkManager.java | 40 |
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); } /* |