summaryrefslogtreecommitdiff
path: root/gnu/java/awt/peer/gtk/GdkFontMetrics.java
diff options
context:
space:
mode:
authorAndrew John Hughes <gnu_andrew@member.fsf.org>2006-11-04 18:55:49 +0000
committerAndrew John Hughes <gnu_andrew@member.fsf.org>2006-11-04 18:55:49 +0000
commit237bdd93058f891ae4567cf4e051c5831bd4646b (patch)
tree61bf13ecf1942efef4ef00642e2ff0f4318a9fb7 /gnu/java/awt/peer/gtk/GdkFontMetrics.java
parente36d2a50b5a1a677c7ecaf926e73a5dac386c1ef (diff)
downloadclasspath-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.java16
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];
}