if (parent.isBidi()) {
if (renderer.isBidi()) {
private int textWidth(String line, int logicalLineOffset, int visualLineOffset, int visualLineLength, StyleRange[] styles, int startX, GC gc, FontData fontData) {	int width;		if (styles != null) {		// while wrapping a line, the logcial line styles may contain 		// style ranges that don't apply (i.e., completely on the previous/next		// visual line). Therefore we need to filter the logical lines.		styles = parent.getVisualLineStyleData(styles, logicalLineOffset + visualLineOffset, visualLineLength);	}	if (parent.isBidi()) {		String wrappedLine = line.substring(visualLineOffset, visualLineOffset + visualLineLength);		StyledTextBidi bidi = parent.getStyledTextBidi(wrappedLine, logicalLineOffset + visualLineOffset, gc, styles);		width = bidi.getTextWidth();	}					else {		width = parent.textWidth(line, logicalLineOffset, visualLineOffset, visualLineLength, styles, startX, gc, fontData);	}	return width;}