emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] Changes to emacs/src/ftfont.c,v


From: Kenichi Handa
Subject: [Emacs-diffs] Changes to emacs/src/ftfont.c,v
Date: Wed, 09 Jul 2008 07:36:33 +0000

CVSROOT:        /cvsroot/emacs
Module name:    emacs
Changes by:     Kenichi Handa <handa>   08/07/09 07:36:33

Index: ftfont.c
===================================================================
RCS file: /cvsroot/emacs/emacs/src/ftfont.c,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -b -r1.24 -r1.25
--- ftfont.c    9 Jul 2008 00:31:42 -0000       1.24
+++ ftfont.c    9 Jul 2008 07:36:33 -0000       1.25
@@ -1171,18 +1171,29 @@
   struct ftfont_info *ftfont_info = (struct ftfont_info *) font;
   FT_Face ft_face = ftfont_info->ft_size->face;
   int width = 0;
-  int i;
+  int i, first;
 
   if (ftfont_info->ft_size != ft_face->size)
     FT_Activate_Size (ftfont_info->ft_size);
   if (metrics)
     bzero (metrics, sizeof (struct font_metrics));
-  for (i = 0; i < nglyphs; i++)
+  for (i = 0, first = 1; i < nglyphs; i++)
     {
       if (FT_Load_Glyph (ft_face, code[i], FT_LOAD_DEFAULT) == 0)
        {
          FT_Glyph_Metrics *m = &ft_face->glyph->metrics;
 
+         if (first)
+           {
+             if (metrics)
+               {
+                 metrics->lbearing = m->horiBearingX >> 6;
+                 metrics->rbearing = (m->horiBearingX + m->width) >> 6;
+                 metrics->ascent = m->horiBearingY >> 6;
+                 metrics->descent = (m->horiBearingY + m->height) >> 6;
+               }
+             first = 0;
+           }
          if (metrics)
            {
              if (metrics->lbearing > width + (m->horiBearingX >> 6))




reply via email to

[Prev in Thread] Current Thread [Next in Thread]