From dc2226d0dc1c685f5d9bcd949ea3d2584651eb57 Mon Sep 17 00:00:00 2001 From: Kenichi Handa Date: Fri, 20 Jun 2008 12:28:22 +0000 Subject: (xftfont_open): Add FOUNDRY, SPACING, DPI, SCALABLE to the pattern. --- src/ChangeLog | 3 +++ src/xftfont.c | 17 +++++++++++++++++ 2 files changed, 20 insertions(+) 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 + * 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; -- cgit v1.2.3