aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJan Djärv2009-12-13 13:16:17 +0000
committerJan Djärv2009-12-13 13:16:17 +0000
commit223e5fc656a6c8a95e5aac334e8c7b82cc9d2a4b (patch)
treef91114f74e6a35d0fa0915d2cc8d28adf37b2dd2 /src
parentbd7705929b6ae098ac0a6cbae7b20f6e08e0954f (diff)
downloademacs-223e5fc656a6c8a95e5aac334e8c7b82cc9d2a4b.tar.gz
emacs-223e5fc656a6c8a95e5aac334e8c7b82cc9d2a4b.zip
xftfont.c: Parse symbolic names for constants also.
(QClcdfilter): New variable. (xftfont_open): Parse constant names for RGBA, HINT_STYLE and LCDFILTER. (syms_of_xftfont): Initialize QClcdfilter.
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog6
-rw-r--r--src/xftfont.c22
2 files changed, 25 insertions, 3 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index ee05443152f..348300ee2da 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,9 @@
12009-12-13 Jan Djärv <jan.h.d@swipnet.se>
2
3 * xftfont.c (QClcdfilter): New variable.
4 (xftfont_open): Parse constant names for RGBA, HINT_STYLE and LCDFILTER.
5 (syms_of_xftfont): Initialize QClcdfilter.
6
12009-12-12 Jan Djärv <jan.h.d@swipnet.se> 72009-12-12 Jan Djärv <jan.h.d@swipnet.se>
2 8
3 * xsettings.c (struct xsettings): Add member seen. 9 * xsettings.c (struct xsettings): Add member seen.
diff --git a/src/xftfont.c b/src/xftfont.c
index 4675875496a..82701ce0afe 100644
--- a/src/xftfont.c
+++ b/src/xftfont.c
@@ -39,7 +39,8 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
39/* Xft font driver. */ 39/* Xft font driver. */
40 40
41static Lisp_Object Qxft; 41static Lisp_Object Qxft;
42static Lisp_Object QChinting , QCautohint, QChintstyle, QCrgba, QCembolden; 42static Lisp_Object QChinting, QCautohint, QChintstyle, QCrgba, QCembolden,
43 QClcdfilter;
43 44
44/* The actual structure for Xft font that can be casted to struct 45/* The actual structure for Xft font that can be casted to struct
45 font. */ 46 font. */
@@ -252,7 +253,7 @@ xftfont_open (f, entity, pixel_size)
252 XftFont *xftfont = NULL; 253 XftFont *xftfont = NULL;
253 int spacing; 254 int spacing;
254 char name[256]; 255 char name[256];
255 int len, i; 256 int len, i, ival;
256 XGlyphInfo extents; 257 XGlyphInfo extents;
257 FT_Face ft_face; 258 FT_Face ft_face;
258 FcMatrix *matrix; 259 FcMatrix *matrix;
@@ -311,11 +312,25 @@ xftfont_open (f, entity, pixel_size)
311 { 312 {
312 if (INTEGERP (val)) 313 if (INTEGERP (val))
313 FcPatternAddInteger (pat, FC_HINT_STYLE, XINT (val)); 314 FcPatternAddInteger (pat, FC_HINT_STYLE, XINT (val));
315 else if (SYMBOLP (val)
316 && FcNameConstant (SDATA (SYMBOL_NAME (val)), &ival))
317 FcPatternAddInteger (pat, FC_HINT_STYLE, ival);
314 } 318 }
315 else if (EQ (key, QCrgba)) 319 else if (EQ (key, QCrgba))
316 { 320 {
317 if (INTEGERP (val)) 321 if (INTEGERP (val))
318 FcPatternAddInteger (pat, FC_RGBA, XINT (val)); 322 FcPatternAddInteger (pat, FC_RGBA, XINT (val));
323 else if (SYMBOLP (val)
324 && FcNameConstant (SDATA (SYMBOL_NAME (val)), &ival))
325 FcPatternAddInteger (pat, FC_RGBA, ival);
326 }
327 else if (EQ (key, QClcdfilter))
328 {
329 if (INTEGERP (val))
330 FcPatternAddInteger (pat, FC_LCD_FILTER, ival = XINT (val));
331 else if (SYMBOLP (val)
332 && FcNameConstant (SDATA (SYMBOL_NAME (val)), &ival))
333 FcPatternAddInteger (pat, FC_LCD_FILTER, ival);
319 } 334 }
320#ifdef FC_EMBOLDEN 335#ifdef FC_EMBOLDEN
321 else if (EQ (key, QCembolden)) 336 else if (EQ (key, QCembolden))
@@ -343,7 +358,7 @@ xftfont_open (f, entity, pixel_size)
343 XftDefaultSubstitute (display, FRAME_X_SCREEN_NUMBER (f), pat); 358 XftDefaultSubstitute (display, FRAME_X_SCREEN_NUMBER (f), pat);
344 match = XftFontMatch (display, FRAME_X_SCREEN_NUMBER (f), pat, &result); 359 match = XftFontMatch (display, FRAME_X_SCREEN_NUMBER (f), pat, &result);
345 xftfont_fix_match (pat, match); 360 xftfont_fix_match (pat, match);
346 361
347 FcPatternDestroy (pat); 362 FcPatternDestroy (pat);
348 xftfont = XftFontOpenPattern (display, match); 363 xftfont = XftFontOpenPattern (display, match);
349 if (!xftfont) 364 if (!xftfont)
@@ -706,6 +721,7 @@ syms_of_xftfont ()
706 DEFSYM (QChintstyle, ":hintstyle"); 721 DEFSYM (QChintstyle, ":hintstyle");
707 DEFSYM (QCrgba, ":rgba"); 722 DEFSYM (QCrgba, ":rgba");
708 DEFSYM (QCembolden, ":embolden"); 723 DEFSYM (QCembolden, ":embolden");
724 DEFSYM (QClcdfilter, ":lcdfilter");
709 725
710 xftfont_driver = ftfont_driver; 726 xftfont_driver = ftfont_driver;
711 xftfont_driver.type = Qxft; 727 xftfont_driver.type = Qxft;