Hi,
On Thu, 2006-03-16 at 15:51 -0500, Thomas Fitzsimmons wrote:
> I added
> gnu.testlet.java.awt.FontMetrics.TestLogicalFontMetrics to show this.
> Before this patch, it had 1484 failures. After the patch it has 118
> failures (caused by Monospaced fonts). I'll fix these failures in a
> separate patch.
Here's the patch, which checks if this is a monospaced font and if so
returns Pango's logical ascent value rather than averaging the logical
and ink ascent values.
Tom
2006-03-16 Thomas Fitzsimmons <[EMAIL PROTECTED]>
* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c
(getFontMetrics): Handle monospaced fonts specially.
Index: native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c
===================================================================
RCS file: /sources/classpath/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c,v
retrieving revision 1.13
diff -u -r1.13 gnu_java_awt_peer_gtk_GdkFontPeer.c
--- native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c 16 Mar 2006 20:21:10 -0000 1.13
+++ native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c 16 Mar 2006 22:20:20 -0000
@@ -298,7 +298,13 @@
pango_ascent = MAX(0, pango_ascent);
pango_descent = MAX(0, pango_descent);
- native_metrics[FONT_METRICS_ASCENT] = java_ascent;
+ /* Pango monospaced fonts have smaller ascent metrics than Sun's so
+ we return the logical ascent for monospaced fonts. */
+ if (!strcmp (pango_font_description_get_family (pfont->desc),
+ "Courier"))
+ native_metrics[FONT_METRICS_ASCENT] = pango_ascent;
+ else
+ native_metrics[FONT_METRICS_ASCENT] = java_ascent;
native_metrics[FONT_METRICS_MAX_ASCENT] = pango_ascent;