From 8fb9e6757ed669f207f203b21ee0aa94715797d0 Mon Sep 17 00:00:00 2001 From: Kenichi Handa Date: Tue, 1 Aug 2006 01:22:48 +0000 Subject: [PATCH] (x_set_font_backend): Do more works that were done in font_update_drivers before. --- src/frame.c | 27 ++++++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/src/frame.c b/src/frame.c index 6d1df70955f..9bbdcd592aa 100644 --- a/src/frame.c +++ b/src/frame.c @@ -3179,8 +3179,6 @@ x_set_font_backend (f, new_value, old_value) struct frame *f; Lisp_Object new_value, old_value; { - Lisp_Object frame; - if (! NILP (new_value) && !CONSP (new_value)) { @@ -3199,9 +3197,32 @@ x_set_font_backend (f, new_value, old_value) p1++; p0 = p1; } + new_value = Fnreverse (new_value); + } + + if (! NILP (old_value) && ! NILP (Fequal (old_value, new_value))) + return; + + if (FRAME_FONT_OBJECT (f)) + { + free_all_realized_faces (Qnil); + Fclear_font_cache (); } - font_update_drivers (f, new_value, FRAME_FONT_OBJECT (f)); + new_value = font_update_drivers (f, new_value); + if (NILP (new_value)) + error ("No font backend available"); + store_frame_param (f, Qfont_backend, new_value); + + if (FRAME_FONT_OBJECT (f)) + { + Lisp_Object frame; + + XSETFRAME (frame, f); + x_set_font (f, Fframe_parameter (frame, Qfont), Qnil); + ++face_change_count; + ++windows_or_buffers_changed; + } } #endif /* USE_FONT_BACKEND */ -- 2.39.5