mirror of
https://github.com/processing/processing4.git
synced 2026-02-04 22:29:18 +01:00
Merge pull request #4113 from JakubValtar/various-fixes
Various editor fixes
This commit is contained in:
@@ -155,15 +155,10 @@ public class MarkerColumn extends JPanel {
|
||||
/** Find out which error/warning the user has clicked and scroll to it */
|
||||
private void scrollToMarkerAt(final int y) {
|
||||
try {
|
||||
new SwingWorker() {
|
||||
protected Object doInBackground() throws Exception {
|
||||
LineMarker m = findClosestMarker(y);
|
||||
if (m != null) {
|
||||
editor.getErrorChecker().scrollToErrorLine(m.getProblem());
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}.execute();
|
||||
LineMarker m = findClosestMarker(y);
|
||||
if (m != null) {
|
||||
editor.getErrorChecker().scrollToErrorLine(m.getProblem());
|
||||
}
|
||||
} catch (Exception ex) {
|
||||
ex.printStackTrace();
|
||||
}
|
||||
@@ -181,21 +176,16 @@ public class MarkerColumn extends JPanel {
|
||||
/** Show tooltip on hover. */
|
||||
private void showMarkerHover(final int y) {
|
||||
try {
|
||||
new SwingWorker() {
|
||||
protected Object doInBackground() throws Exception {
|
||||
LineMarker m = findClosestMarker(y);
|
||||
if (m != null) {
|
||||
Problem p = m.getProblem();
|
||||
LineMarker m = findClosestMarker(y);
|
||||
if (m != null) {
|
||||
Problem p = m.getProblem();
|
||||
// String kind = p.isError() ?
|
||||
// Language.text("editor.status.error") :
|
||||
// Language.text("editor.status.warning");
|
||||
// setToolTipText(kind + ": " + p.getMessage());
|
||||
editor.statusToolTip(MarkerColumn.this, p.getMessage(), p.isError());
|
||||
setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}.execute();
|
||||
editor.statusToolTip(MarkerColumn.this, p.getMessage(), p.isError());
|
||||
setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
|
||||
}
|
||||
} catch (Exception ex) {
|
||||
ex.printStackTrace();
|
||||
}
|
||||
|
||||
@@ -26,6 +26,7 @@ import processing.mode.java.tweak.*;
|
||||
import java.awt.Color;
|
||||
import java.awt.Cursor;
|
||||
import java.awt.Font;
|
||||
import java.awt.FontMetrics;
|
||||
import java.awt.Graphics;
|
||||
import java.awt.Graphics2D;
|
||||
import java.awt.Point;
|
||||
@@ -114,39 +115,6 @@ public class JavaTextAreaPainter extends TextAreaPainter
|
||||
}
|
||||
});
|
||||
|
||||
addMouseMotionListener(new MouseMotionAdapter() {
|
||||
@Override
|
||||
public void mouseMoved(final MouseEvent evt) {
|
||||
int line = textArea.yToLine(evt.getY());
|
||||
int x = evt.getX();
|
||||
|
||||
LineMarker marker = getJavaEditor().findError(line);
|
||||
if (marker != null) {
|
||||
Problem problem = marker.getProblem();
|
||||
|
||||
int lineOffset = textArea.getLineStartOffset(problem.getLineNumber());
|
||||
|
||||
int lineStart = textArea.getLineStartOffset(line);
|
||||
int lineEnd = textArea.getLineStopOffset(line);
|
||||
|
||||
int errorStart = lineOffset + problem.getPDELineStartOffset();
|
||||
int errorEnd = lineOffset + problem.getPDELineStopOffset() + 1;
|
||||
|
||||
int startOffset = Math.max(errorStart, lineStart) - lineStart;
|
||||
int stopOffset = Math.min(errorEnd, lineEnd) - lineStart;
|
||||
|
||||
if (x >= getJavaTextArea().offsetToX(line, startOffset) &&
|
||||
x <= getJavaTextArea().offsetToX(line, stopOffset)) {
|
||||
//setToolTipText(problem.getMessage());
|
||||
getJavaEditor().statusToolTip(JavaTextAreaPainter.this,
|
||||
problem.getMessage(),
|
||||
problem.isError());
|
||||
evt.consume();
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
// TweakMode code
|
||||
tweakMode = false;
|
||||
cursorType = Cursor.DEFAULT_CURSOR;
|
||||
@@ -476,6 +444,42 @@ public class JavaTextAreaPainter extends TextAreaPainter
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public String getToolTipText(MouseEvent evt) {
|
||||
int line = evt.getY() / getFontMetrics().getHeight() + textArea.getFirstLine();
|
||||
if (line >= 0 || line < textArea.getLineCount()) {
|
||||
LineMarker marker = getJavaEditor().findError(line);
|
||||
if (marker != null) {
|
||||
Problem problem = marker.getProblem();
|
||||
|
||||
int lineOffset = textArea.getLineStartOffset(problem.getLineNumber());
|
||||
|
||||
int lineStart = textArea.getLineStartOffset(line);
|
||||
int lineEnd = textArea.getLineStopOffset(line);
|
||||
|
||||
int errorStart = lineOffset + problem.getPDELineStartOffset();
|
||||
int errorEnd = lineOffset + problem.getPDELineStopOffset() + 1;
|
||||
|
||||
int startOffset = Math.max(errorStart, lineStart) - lineStart;
|
||||
int stopOffset = Math.min(errorEnd, lineEnd) - lineStart;
|
||||
|
||||
int x = evt.getX();
|
||||
|
||||
if (x >= getJavaTextArea().offsetToX(line, startOffset) &&
|
||||
x <= getJavaTextArea().offsetToX(line, stopOffset)) {
|
||||
getJavaEditor().statusToolTip(JavaTextAreaPainter.this,
|
||||
problem.getMessage(),
|
||||
problem.isError());
|
||||
return super.getToolTipText(evt);
|
||||
}
|
||||
}
|
||||
}
|
||||
setToolTipText(null);
|
||||
return super.getToolTipText(evt);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
@Override
|
||||
public String getToolTipText(MouseEvent event) {
|
||||
if (!getJavaEditor().hasJavaTabs()) {
|
||||
@@ -564,6 +568,7 @@ public class JavaTextAreaPainter extends TextAreaPainter
|
||||
// setToolTipText(null);
|
||||
return super.getToolTipText(event);
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
// TweakMode code
|
||||
|
||||
Reference in New Issue
Block a user