diff --git a/bundles/org.eclipse.jface.text/src/org/eclipse/jface/text/source/MatchingCharacterPainter.java b/bundles/org.eclipse.jface.text/src/org/eclipse/jface/text/source/MatchingCharacterPainter.java index f63a54c6c1d..85a2b460d5b 100644 --- a/bundles/org.eclipse.jface.text/src/org/eclipse/jface/text/source/MatchingCharacterPainter.java +++ b/bundles/org.eclipse.jface.text/src/org/eclipse/jface/text/source/MatchingCharacterPainter.java @@ -257,17 +257,14 @@ private void draw(final GC gc, final int offset) { if (gc != null) { gc.setForeground(fColor); - final Rectangle bounds= fTextWidget.getTextBounds(offset, offset); + Point offsetLocation= fTextWidget.getLocationAtOffset(offset); - // determine the character width separately, because the getTextBounds above - // will also include any in-line annotations (e.g. codemining annotations) in the width final String matchingCharacter= fTextWidget.getText(offset, offset); - final int width= gc.textExtent(matchingCharacter).x; - - final int height= fTextWidget.getCaret().getSize().y; + Point characterBounds= gc.textExtent(matchingCharacter); + Rectangle hightlightingArea= Rectangle.of(offsetLocation, characterBounds); // draw box around line segment - gc.drawRectangle(bounds.x, bounds.y + bounds.height - height, width, height - 1); + gc.drawRectangle(hightlightingArea); } else { fTextWidget.redrawRange(offset, 1, true); }