diff options
author | Andrew John Hughes <gnu_andrew@member.fsf.org> | 2006-11-04 18:55:49 +0000 |
---|---|---|
committer | Andrew John Hughes <gnu_andrew@member.fsf.org> | 2006-11-04 18:55:49 +0000 |
commit | 237bdd93058f891ae4567cf4e051c5831bd4646b (patch) | |
tree | 61bf13ecf1942efef4ef00642e2ff0f4318a9fb7 /gnu/java/awt/peer/gtk/GdkFontMetrics.java | |
parent | e36d2a50b5a1a677c7ecaf926e73a5dac386c1ef (diff) | |
download | classpath-237bdd93058f891ae4567cf4e051c5831bd4646b.tar.gz |
2006-11-04 Andrew John Hughes <gnu_andrew@member.fsf.org>
* Merge of HEAD-->generics-branch for 2006/10/29 to 2006/11/04.
Diffstat (limited to 'gnu/java/awt/peer/gtk/GdkFontMetrics.java')
-rw-r--r-- | gnu/java/awt/peer/gtk/GdkFontMetrics.java | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/gnu/java/awt/peer/gtk/GdkFontMetrics.java b/gnu/java/awt/peer/gtk/GdkFontMetrics.java index b2ffed10e..30b1ff15e 100644 --- a/gnu/java/awt/peer/gtk/GdkFontMetrics.java +++ b/gnu/java/awt/peer/gtk/GdkFontMetrics.java @@ -95,8 +95,22 @@ public class GdkFontMetrics extends FontMetrics public int stringWidth (String str) { + +// TextLayout layout = new TextLayout(str, getFont(), null); +// return (int) layout.getAdvance(); + // We need to filter control chars, because they are never displayed + // in Java and thus also have no metrics. + int len = str.length(); + StringBuilder b = new StringBuilder(len); + for (int i = 0; i < len; i++) + { + char ch = str.charAt(i); + if (! Character.isISOControl(ch)) + b.append(ch); + } double [] hires = new double[6]; - peer.getTextMetrics(str, hires); + String string = b.toString(); + peer.getTextMetrics(string, hires); return (int) hires [TEXT_METRICS_WIDTH]; } |