From 34c23c382d5230e9c672262ce01975596bb985f4 Mon Sep 17 00:00:00 2001 From: Manindra Moharana Date: Fri, 14 Nov 2014 14:37:12 -0700 Subject: [PATCH] 2nd attempt at fixing #2926 --- .../mode/experimental/TextAreaPainter.java | 52 ++++++++++++------- 1 file changed, 34 insertions(+), 18 deletions(-) diff --git a/pdex/src/processing/mode/experimental/TextAreaPainter.java b/pdex/src/processing/mode/experimental/TextAreaPainter.java index 657f75c4d..b6f0b6d43 100644 --- a/pdex/src/processing/mode/experimental/TextAreaPainter.java +++ b/pdex/src/processing/mode/experimental/TextAreaPainter.java @@ -457,29 +457,43 @@ public class TextAreaPainter extends processing.app.syntax.TextAreaPainter } public String getToolTipText(java.awt.event.MouseEvent evt) { - if(ta.editor.hasJavaTabs) return ""; // disabled for java tabs + if (ta.editor.hasJavaTabs) { // disabled for java tabs + setToolTipText(null); + return super.getToolTipText(evt); + } int off = ta.xyToOffset(evt.getX(), evt.getY()); - if (off < 0) - return ""; + if (off < 0) { + setToolTipText(null); + return super.getToolTipText(evt); + } int line = ta.getLineOfOffset(off); - if (line < 0) - return ""; + if (line < 0) { + setToolTipText(null); + return super.getToolTipText(evt); + } String s = ta.getLineText(line); if (s == "") return evt.toString(); - else if (s.length() == 0) - return ""; - else { + else if (s.length() == 0) { + setToolTipText(null); + return super.getToolTipText(evt); + } else { int x = ta.xToOffset(line, evt.getX()), x2 = x + 1, x1 = x - 1; int xLS = off - ta.getLineStartNonWhiteSpaceOffset(line); - if (x < 0 || x >= s.length()) - return ""; + if (x < 0 || x >= s.length()) { + setToolTipText(null); + return super.getToolTipText(evt); + } String word = s.charAt(x) + ""; - if (s.charAt(x) == ' ') - return ""; + if (s.charAt(x) == ' ') { + setToolTipText(null); + return super.getToolTipText(evt); + } if (!(Character.isLetterOrDigit(s.charAt(x)) || s.charAt(x) == '_' || s - .charAt(x) == '$')) - return ""; + .charAt(x) == '$')) { + setToolTipText(null); + return super.getToolTipText(evt); + } int i = 0; while (true) { i++; @@ -509,8 +523,10 @@ public class TextAreaPainter extends processing.app.syntax.TextAreaPainter break; } } - if (Character.isDigit(word.charAt(0))) - return ""; + if (Character.isDigit(word.charAt(0))) { + setToolTipText(null); + return super.getToolTipText(evt); + } String tooltipText = errorCheckerService.getASTGenerator() .getLabelForASTNode(line, word, xLS); @@ -518,9 +534,9 @@ public class TextAreaPainter extends processing.app.syntax.TextAreaPainter // + "|" + line + "| offset " + xLS + word + " <= offf: "+off+ "\n"); if (tooltipText != null) return tooltipText; - return ""; } - + setToolTipText(null); + return super.getToolTipText(evt); } // TweakMode code