From d0cf45b70247fc1f4cfc6d74c1b5f6d4ca75f0fc Mon Sep 17 00:00:00 2001 From: Jan Djärv Date: Wed, 6 Jan 2010 20:38:39 +0100 Subject: Fix slowdown and wrong font choosed by XSETTINGS changes. bug #5157. * font.c (font_open_entity): Enable chache and call cached_font_ok for the driver if defined. (QCuser_spec): New symbol. (font_spec_from_name): Save name as user-spec. (font_load_for_lface): Keep user-spec instead of name. (font_open_by_name): Save name as user-spec. (syms_of_font): Initialize QCuser_spec. * xftfont.c (xftfont_open): Call xftfont_add_rendering_parameters. (xftfont_add_rendering_parameters, xftfont_cached_font_ok): New. (syms_of_xftfont): Initialize xftfont_driver.cached_font_ok. * font.h (struct font_driver): Add cached_font_ok. * font-setting.el (font-setting-change-default-font): Use user-spec instead of name. --- src/font.h | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'src/font.h') diff --git a/src/font.h b/src/font.h index 1a09df2558c..798676d546e 100644 --- a/src/font.h +++ b/src/font.h @@ -689,6 +689,14 @@ struct font_driver int c, unsigned variations[256])); void (*filter_properties) P_ ((Lisp_Object font, Lisp_Object properties)); + + /* Optional. + + Return non-zero if FONT_OBJECT can be used as a (cached) font + for ENTITY on frame F. */ + int (*cached_font_ok) P_ ((struct frame *f, + Lisp_Object font_object, + Lisp_Object entity)); }; -- cgit v1.2.3