diff options
Diffstat (limited to 'gnu/java/awt/peer/x/XFontPeer.java')
-rw-r--r-- | gnu/java/awt/peer/x/XFontPeer.java | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/gnu/java/awt/peer/x/XFontPeer.java b/gnu/java/awt/peer/x/XFontPeer.java index 8a499db1a..fd293d8dd 100644 --- a/gnu/java/awt/peer/x/XFontPeer.java +++ b/gnu/java/awt/peer/x/XFontPeer.java @@ -694,7 +694,8 @@ public class XFontPeer } String protoType = fontProperties.getProperty(key.toString()); - return protoType.replaceFirst("%d", String.valueOf(size)); + int s = validSize(size); + return protoType.replaceFirst("%d", String.valueOf(s * 10)); } /** @@ -724,6 +725,31 @@ public class XFontPeer } /** + * Translates an arbitrary point size to a size that is typically available + * on an X server. These are the sizes 8, 10, 12, 14, 18 and 24. + * + * @param size the queried size + * @return the real available size + */ + private static final int validSize(int size) + { + int val; + if (size <= 9) + val = 8; + else if (size <= 11) + val = 10; + else if (size <= 13) + val = 12; + else if (size <= 17) + val = 14; + else if (size <= 23) + val = 18; + else + val = 24; + return val; + } + + /** * Returns the X Font reference. This lazily loads the font when first * requested. * |