diff options
-rw-r--r-- | src/ChangeLog | 3 | ||||
-rw-r--r-- | src/xftfont.c | 17 |
2 files changed, 20 insertions, 0 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index f005d1bf70..52e8901ff8 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,5 +1,8 @@ 2008-06-20 Kenichi Handa <[email protected]> + * xftfont.c (xftfont_open): Add FOUNDRY, SPACING, DPI, SCALABLE to + the pattern. + * fontset.c (fontset_from_font): Copy font_spec before changing the elements. diff --git a/src/xftfont.c b/src/xftfont.c index 7d5bf245cb..aa6c270e64 100644 --- a/src/xftfont.c +++ b/src/xftfont.c @@ -219,6 +219,23 @@ xftfont_open (f, entity, pixel_size) val = AREF (entity, FONT_FAMILY_INDEX); if (! NILP (val)) FcPatternAddString (pat, FC_FAMILY, (FcChar8 *) SDATA (SYMBOL_NAME (val))); + val = AREF (entity, FONT_FOUNDRY_INDEX); + if (! NILP (val)) + FcPatternAddString (pat, FC_FOUNDRY, (FcChar8 *) SDATA (SYMBOL_NAME (val))); + val = AREF (entity, FONT_SPACING_INDEX); + if (! NILP (val)) + FcPatternAddInteger (pat, FC_SPACING, XINT (val)); + val = AREF (entity, FONT_DPI_INDEX); + if (! NILP (val)) + { + double dbl = XINT (val); + + FcPatternAddDouble (pat, FC_DPI, dbl); + } + val = AREF (entity, FONT_AVGWIDTH_INDEX); + if (INTEGERP (val) && XINT (val) == 0) + FcPatternAddBool (pat, FC_SCALABLE, FcTrue); + for (tail = AREF (entity, FONT_EXTRA_INDEX); CONSP (tail); tail = XCDR (tail)) { Lisp_Object key, val; |