diff --git a/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/graphics/TextLayout.java b/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/graphics/TextLayout.java index 4ec71e5988b..2cc726f481d 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/graphics/TextLayout.java +++ b/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/graphics/TextLayout.java @@ -2854,6 +2854,13 @@ public boolean isDisposed () { return device == null; } +private static char replaceBelowSpaceCharacters(char chr) { + return chr >= ' ' + ? chr + //: (char)(0x2400 + chr); + : '?'; +} + /* * Itemize the receiver text */ @@ -2881,6 +2888,9 @@ StyleItem[] itemize () { int[] pcItems = new int[1]; char[] chars = new char[length]; segmentsText.getChars(0, length, chars, 0); + for (int i = 0; i < length; i++) { + chars[i] = replaceBelowSpaceCharacters(chars[i]); + } // enable font ligatures scriptControl.fMergeNeutralItems = true; /* @@ -3740,6 +3750,9 @@ void shape (GC gc, final long hdc, final StyleItem run) { final int[] buffer = new int[1]; final char[] chars = new char[run.length]; segmentsText.getChars(run.start, run.start + run.length, chars, 0); + for (int i = 0; i < chars.length; i++) { + chars[i] = replaceBelowSpaceCharacters(chars[i]); + } final int maxGlyphs = (chars.length * 3 / 2) + 16; long hHeap = OS.GetProcessHeap();