From 88794ec1d6b5374548f251815c8a4fa2d5adec6f Mon Sep 17 00:00:00 2001 From: Cristian Maglie Date: Wed, 24 Aug 2011 10:42:58 +0200 Subject: [PATCH] =?UTF-8?q?Double-click=20now=20opens=20URL=20(right-click?= =?UTF-8?q?=20still=20shows=20"Open=20URL"=20in=20popup=20men=C3=B9).?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/processing/app/Editor.java | 19 +++++-------------- .../processing/app/syntax/JEditTextArea.java | 18 ++++++++++++++++++ 2 files changed, 23 insertions(+), 14 deletions(-) diff --git a/app/src/processing/app/Editor.java b/app/src/processing/app/Editor.java index 0b25324a1..c3547d87f 100644 --- a/app/src/processing/app/Editor.java +++ b/app/src/processing/app/Editor.java @@ -2739,22 +2739,13 @@ public class Editor extends JFrame implements RunnerListener { add(referenceItem); } - private boolean clickedURL(String line, int offset) { - String[] parse = SyntaxUtilities.parseCommentUrls(line); - if (parse==null) - return false; - int start = parse[0].length(); - int stop = start + parse[1].length(); - if (offsetstop+2) - return false; - clickedURL = parse[1]; - return true; - } - // if no text is selected, disable copy and cut menu items public void show(Component component, int x, int y) { - int line = textarea.getLineOfOffset(textarea.xyToOffset(x, y)); - if (clickedURL(textarea.getLineText(line), textarea.xToOffset(line, x))) { + int lineNo = textarea.getLineOfOffset(textarea.xyToOffset(x, y)); + int offset = textarea.xToOffset(lineNo, x); + String line = textarea.getLineText(lineNo); + clickedURL = textarea.checkClickedURL(line, offset); + if (clickedURL != null) { openURLItem.setVisible(true); openURLItemSeparator.setVisible(true); } else { diff --git a/app/src/processing/app/syntax/JEditTextArea.java b/app/src/processing/app/syntax/JEditTextArea.java index d5c01c48a..9683c43d8 100644 --- a/app/src/processing/app/syntax/JEditTextArea.java +++ b/app/src/processing/app/syntax/JEditTextArea.java @@ -2045,6 +2045,17 @@ public class JEditTextArea extends JComponent } } + public String checkClickedURL(String line, int offset) { + String[] parse = SyntaxUtilities.parseCommentUrls(line); + if (parse==null) + return null; + int start = parse[0].length(); + int stop = start + parse[1].length(); + if (offsetstop) + return null; + return parse[1]; + } + class MouseHandler extends MouseAdapter { public void mousePressed(MouseEvent evt) @@ -2111,6 +2122,13 @@ public class JEditTextArea extends JComponent if (getLineLength(line) == 0) return; + // Check for click on urls + String clickedURL = checkClickedURL(getLineText(line), offset); + if (clickedURL != null) { + Base.openURL(clickedURL); + return; + } + try { int bracket = TextUtilities.findMatchingBracket(document, Math.max(0,dot - 1));