natFont.cc (getMaxAscent): adjusted return value.
authorScott Gilbertson <scottg@mantatest.com>
Tue, 10 Jun 2003 01:50:12 +0000 (01:50 +0000)
committerTom Tromey <tromey@gcc.gnu.org>
Tue, 10 Jun 2003 01:50:12 +0000 (01:50 +0000)
2003-06-09  Scott Gilbertson  <scottg@mantatest.com>

* gnu/gcj/xlib/natFont.cc (getMaxAscent): adjusted return value.
(getMaxDescent): adjusted return value.
(getAscent): modified to use metrics for 'O'.
(getDescent): modified to use metrics for 'y'.

From-SVN: r67692

libjava/ChangeLog
libjava/gnu/gcj/xlib/natFont.cc

index d0b1a4d5c6f8ef541a3a9347ea97274633ba4b88..3fdf18f83869e37b7e1ee77ef12ffb2bc7c85c0d 100644 (file)
@@ -1,3 +1,10 @@
+2003-06-09  Scott Gilbertson  <scottg@mantatest.com>
+
+       * gnu/gcj/xlib/natFont.cc (getMaxAscent): adjusted return value.
+       (getMaxDescent): adjusted return value.
+       (getAscent): modified to use metrics for 'O'.
+       (getDescent): modified to use metrics for 'y'.
+
 2003-06-08  Anthony Green  <green@redhat.com>
 
        * java/net/URLStreamHandler.java (sameFile): Fix port value
index 0f8f43dc509a77ffc6af94caec16e4637e356932..c929d227599b7b84c718aa24ec5ebf4a7117203c 100644 (file)
@@ -44,25 +44,35 @@ jint gnu::gcj::xlib::Font::getXIDFromStruct(gnu::gcj::RawData* structure)
 jint gnu::gcj::xlib::Font::getMaxAscent()
 {
   XFontStruct* fontStruct = (XFontStruct*) structure;
-  return fontStruct->max_bounds.ascent;
+  return fontStruct->max_bounds.ascent+1;   // +1 to include the baseline
 }
 
 jint gnu::gcj::xlib::Font::getMaxDescent()
 {
   XFontStruct* fontStruct = (XFontStruct*) structure;
-  return fontStruct->max_bounds.descent;
+  return fontStruct->max_bounds.descent-1;  // -1 to exclude the baseline
 }
 
 jint gnu::gcj::xlib::Font::getAscent()
 {
   XFontStruct* fontStruct = (XFontStruct*) structure;
-  return fontStruct->ascent;
+  jint returnValue = fontStruct->ascent;
+  if (fontStruct->min_byte1==0 && fontStruct->min_char_or_byte2<=(unsigned)'O')
+    returnValue = fontStruct
+        ->per_char[(unsigned)'O'-fontStruct->min_char_or_byte2]
+        ->ascent;
+  return returnValue+1;  // +1 to include the baseline
 }
 
 jint gnu::gcj::xlib::Font::getDescent()
 {
   XFontStruct* fontStruct = (XFontStruct*) structure;
-  return fontStruct->ascent;
+  jint returnValue = fontStruct->descent;
+  if (fontStruct->min_byte1==0 && fontStruct->min_char_or_byte2<=(unsigned)'y')
+    returnValue = fontStruct
+        ->per_char[(unsigned)'y'-fontStruct->min_char_or_byte2]
+        ->descent;
+  return returnValue-1;  // -1 to exclude the baseline
 }
 
 jint gnu::gcj::xlib::Font::getStringWidth(java::lang::String* text)