Respect FC_HINT_STYLE. Patch has been in Fedora for ages.
authorBehdad Esfahbod <behdad@gnome.org>
Thu, 18 Jan 2007 05:37:19 +0000 (05:37 +0000)
committerBehdad Esfahbod <behdad@src.gnome.org>
Thu, 18 Jan 2007 05:37:19 +0000 (05:37 +0000)
2007-01-18  Behdad Esfahbod  <behdad@gnome.org>

        * pango/pangoft2.c (pango_ft2_font_get_face): Respect FC_HINT_STYLE.
        Patch has been in Fedora for ages.

svn path=/trunk/; revision=2174

ChangeLog
pango/pangoft2.c

index bd20897..5e8b8ee 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2007-01-18  Behdad Esfahbod  <behdad@gnome.org>
+
+       * pango/pangoft2.c (pango_ft2_font_get_face): Respect FC_HINT_STYLE.
+       Patch has been in Fedora for ages.
+
 2007-01-17  Behdad Esfahbod  <behdad@gnome.org>
 
        * === Released 1.15.4 ===
index 5430c32..25144db 100644 (file)
@@ -173,6 +173,7 @@ pango_ft2_font_get_face (PangoFont *font)
   FcPattern *pattern;
   FcChar8 *filename;
   FcBool antialias, hinting, autohint;
+  int hintstyle;
   int id;
 
   if (G_UNLIKELY (!PANGO_FT2_IS_FONT (font)))
@@ -206,8 +207,21 @@ pango_ft2_font_get_face (PangoFont *font)
                            FC_HINTING, 0, &hinting) != FcResultMatch)
        hinting = FcTrue;
 
-      if (!hinting)
-       ft2font->load_flags |= FT_LOAD_NO_HINTING;
+      if (FcPatternGetInteger (pattern, FC_HINT_STYLE, 0, &hintstyle) != FcResultMatch)
+       hintstyle = FC_HINT_FULL;
+
+      if (!hinting || hintstyle == FC_HINT_NONE)
+          ft2font->load_flags |= FT_LOAD_NO_HINTING;
+      
+      switch (hintstyle) {
+      case FC_HINT_SLIGHT:
+      case FC_HINT_MEDIUM:
+       ft2font->load_flags |= FT_LOAD_TARGET_LIGHT;
+       break;
+      default:
+       ft2font->load_flags |= FT_LOAD_TARGET_NORMAL;
+       break;
+      }
 
       /* force autohinting if requested */
       if (FcPatternGetBool (pattern,