diff --git a/app/src/processing/app/syntax/JEditTextArea.java b/app/src/processing/app/syntax/JEditTextArea.java index 5ff98c478..49cc203c3 100644 --- a/app/src/processing/app/syntax/JEditTextArea.java +++ b/app/src/processing/app/syntax/JEditTextArea.java @@ -1400,11 +1400,30 @@ public class JEditTextArea extends JComponent * just as we're doing by drawing individual characters in the * TextAreaPainter class. * + * #447, * #226, * #194, * and Sam's 103 */ + static int getTabbedTextWidth(Segment s, + FontMetrics metrics, int x, + TabExpander e, int startOffset) { + int nextX = x; + char[] txt = s.array; + int txtOffset = s.offset; + int n = s.offset + s.count; + + for (int i = txtOffset; i < n; i++) { + if (txt[i] == '\t' && e != null) { + nextX = (int) e.nextTabStop(nextX, startOffset + i - txtOffset); + continue; + } + nextX += metrics.charWidth(txt[i]); + } + return nextX - x; + } +/* static int getTabbedTextWidth(Segment s, FontMetrics metrics, int x, TabExpander e, int startOffset) { @@ -1457,6 +1476,7 @@ public class JEditTextArea extends JComponent // return (int) (nextX - x); // nextX was a float, this was returning a float [fry 220128] return nextX - x; } +*/ protected void setNewSelectionWord( int line, int offset )