Mercurial > emacs
changeset 109035:20747b4a7983
Don't use font names from GConf if font backend can't handle it (bug#6478).
* xfns.c (x_default_font_parameter): Try to open font from system
before using it (bug#6478). Rename got_from_gconf to got_from_system.
author | Jan D. <jan.h.d@swipnet.se> |
---|---|
date | Tue, 22 Jun 2010 09:55:08 +0200 |
parents | 3bd67aa6b7e2 |
children | 439784267ae2 |
files | src/ChangeLog src/xfns.c |
diffstat | 2 files changed, 22 insertions(+), 11 deletions(-) [+] |
line wrap: on
line diff
--- a/src/ChangeLog Tue Jun 22 00:51:46 2010 -0700 +++ b/src/ChangeLog Tue Jun 22 09:55:08 2010 +0200 @@ -1,3 +1,8 @@ +2010-06-22 Jan Djärv <jan.h.d@swipnet.se> + + * xfns.c (x_default_font_parameter): Try to open font from system + before using it (bug#6478). Rename got_from_gconf to got_from_system. + 2010-06-22 Keith Packard <keithp@keithp.com> (tiny change) * font.c (font_parse_fcname): Allow . for sizes like 7.5 (bug#6437).
--- a/src/xfns.c Tue Jun 22 00:51:46 2010 -0700 +++ b/src/xfns.c Tue Jun 22 09:55:08 2010 +0200 @@ -3064,8 +3064,8 @@ struct x_display_info *dpyinfo = FRAME_X_DISPLAY_INFO (f); Lisp_Object font_param = x_get_arg (dpyinfo, parms, Qfont, NULL, NULL, RES_TYPE_STRING); - Lisp_Object font; - int got_from_gconf = 0; + Lisp_Object font = Qnil; + int got_from_system = 0; if (EQ (font_param, Qunbound)) font_param = Qnil; @@ -3075,14 +3075,20 @@ regardless of font-use-system-font because .emacs may not have been read yet. */ const char *system_font = xsettings_get_system_font (); - if (system_font) font_param = make_string (system_font, - strlen (system_font)); + if (system_font) + { + char *name = xstrdup (system_font); + font = font_open_by_name (f, name); + got_from_system = ! NILP (font); + free (name); + } } - - font = !NILP (font_param) ? font_param - : x_get_arg (dpyinfo, parms, Qfont, "font", "Font", RES_TYPE_STRING); - - if (! STRINGP (font)) + + if (NILP (font)) + font = !NILP (font_param) ? font_param + : x_get_arg (dpyinfo, parms, Qfont, "font", "Font", RES_TYPE_STRING); + + if (! FONTP (font) && ! STRINGP (font)) { char *names[] = { @@ -3120,8 +3126,8 @@ } x_default_parameter (f, parms, Qfont, font, - got_from_gconf ? NULL : "font", - got_from_gconf ? NULL : "Font", + got_from_system ? NULL : "font", + got_from_system ? NULL : "Font", RES_TYPE_STRING); }