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;
 

Reply via email to