### Eclipse Workspace Patch 1.0 #P org.eclipse.jface.text Index: src/org/eclipse/jface/text/WhitespaceCharacterPainter.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jface.text/src/org/eclipse/jface/text/WhitespaceCharacterPainter.java,v retrieving revision 1.8 diff -u -r1.8 WhitespaceCharacterPainter.java --- src/org/eclipse/jface/text/WhitespaceCharacterPainter.java 11 Sep 2007 09:00:31 -0000 1.8 +++ src/org/eclipse/jface/text/WhitespaceCharacterPainter.java 24 Oct 2007 12:36:05 -0000 @@ -162,6 +162,7 @@ * @param w the width of the drawing range */ private void drawLineRange(GC gc, int startLine, int endLine, int x, int w) { + final int viewPortWidth= fTextWidget.getClientArea().width; for (int line= startLine; line <= endLine; line++) { int lineOffset= fTextWidget.getOffsetAtLine(line); // line end offset including line delimiter @@ -182,7 +183,7 @@ } // compute coordinates of last character on line Point endOfLine= fTextWidget.getLocationAtOffset(lineOffset + lineLength); - if (x > endOfLine.x) { + if (x - endOfLine.x > viewPortWidth) { // line is not visible continue; } @@ -191,7 +192,10 @@ // compute first visible char offset int startOffset; try { - startOffset= fTextWidget.getOffsetAtLocation(new Point(x, y)); + startOffset= fTextWidget.getOffsetAtLocation(new Point(x, y)) - 1; + if (startOffset - 2 <= lineOffset) { + startOffset= lineOffset; + } } catch (IllegalArgumentException iae) { startOffset= lineOffset; }