]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix for raise display property on NS (Bug#8913).
authorAlp Aker <alp.tekin.aker@gmail.com>
Thu, 28 Jul 2011 18:50:05 +0000 (14:50 -0400)
committerChong Yidong <cyd@stupidchicken.com>
Thu, 28 Jul 2011 18:50:05 +0000 (14:50 -0400)
* src/nsfont.m (nsfont_open): Remove assignment to voffset and
unnecessary vars hshink, expand, hd, full_height, min_height.
(nsfont_draw): Use s->ybase as baseline for glyph drawing.

* src/nsterm.h (nsfont_info): Remove voffset field.

src/ChangeLog
src/nsfont.m
src/nsterm.h

index 3f9c098b99a607b78172f9347f40154aab595c20..f6f64f4211d62fa93f38fa3e53cb59714e9cf1db 100644 (file)
        * nsterm.m (ns_dumpglyphs_stretch): Avoid overwriting left fringe
        or scroll bar (Bug#8470).
 
+       * nsfont.m (nsfont_open): Remove assignment to voffset and
+       unnecessary vars hshink, expand, hd, full_height, min_height.
+       (nsfont_draw): Use s->ybase as baseline for glyph drawing (Bug#8913).
+
+       * nsterm.h (nsfont_info): Remove voffset field.
+
 2011-07-28  Alp Aker  <alp.tekin.aker@gmail.com>
 
        Implement strike-through and overline on NextStep (Bug#8863).
index 3720e9a4615053d3f184e785dc7944510a6a688e..60f8c5321aa7448bde2d9351889eba74d21b51bb 100644 (file)
@@ -804,8 +804,6 @@ nsfont_open (FRAME_PTR f, Lisp_Object font_entity, int pixel_size)
   font->props[FONT_FILE_INDEX] = Qnil;
 
   {
-    double expand, hshrink;
-    float full_height, min_height, hd;
     const char *fontName = [[nsfont fontName] UTF8String];
     int len = strlen (fontName);
 
@@ -837,26 +835,16 @@ nsfont_open (FRAME_PTR f, Lisp_Object font_entity, int pixel_size)
       [sfont maximumAdvancement].width : ns_char_width (sfont, '0');
 
     brect =  [sfont boundingRectForFont];
-    full_height = brect.size.height;
-    min_height = [sfont ascender] - adjusted_descender;
-    hd = full_height - min_height;
-
-    /* standard height, similar to Carbon. Emacs.app: was 0.5 by default. */
-    expand = 0.0;
-    hshrink = 1.0;
 
     font_info->underpos = [sfont underlinePosition];
     font_info->underwidth = [sfont underlineThickness];
     font_info->size = font->pixel_size;
-    font_info->voffset = lrint (hshrink * [sfont ascender] + expand * hd / 2);
 
     /* max bounds */
-    font_info->max_bounds.ascent =
-      lrint (hshrink * [sfont ascender] + expand * hd/2);
+    font_info->max_bounds.ascent = lrint ([sfont ascender]);
     /* Descender is usually negative.  Use floor to avoid
        clipping descenders. */
-    font_info->max_bounds.descent =
-      -lrint (floor(hshrink* adjusted_descender - expand*hd/2));
+    font_info->max_bounds.descent = -lrint (floor(adjusted_descender));
     font_info->height =
       font_info->max_bounds.ascent + font_info->max_bounds.descent;
     font_info->max_bounds.width = lrint (font_info->width);
@@ -1165,7 +1153,7 @@ nsfont_draw (struct glyph_string *s, int from, int to, int x, int y,
 
 
   /* set up for character rendering */
-  r.origin.y += font->voffset + (s->height - font->height)/2;
+  r.origin.y = s->ybase;
 
   col = (NS_FACE_FOREGROUND (face) != 0
          ? ns_lookup_indexed_color (NS_FACE_FOREGROUND (face), s->f)
index 227429ed5153280d7a3ac5e172d457069327bf12..6ea9161c922ae2a11b8962bbcf5d53c2ad2ce9d3 100644 (file)
@@ -467,7 +467,6 @@ struct nsfont_info
 #endif
   char bold, ital;  /* convenience flags */
   char synthItal;
-  float voffset;  /* mean of ascender/descender offsets */
   XCharStruct max_bounds;
   /* we compute glyph codes and metrics on-demand in blocks of 256 indexed
      by hibyte, lobyte */