changeset 91248:ed6fa90c5c89

(x_set_font_backend): Don't call Fclear_font_cache. If none of the new drivers are available, call font_update_drviers with the old drivers.
author Kenichi Handa <handa@m17n.org>
date Tue, 18 Dec 2007 11:43:51 +0000
parents 217eabc2db11
children 4f21471103e6
files src/frame.c
diffstat 1 files changed, 8 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/src/frame.c	Tue Dec 18 11:40:00 2007 +0000
+++ b/src/frame.c	Tue Dec 18 11:43:51 2007 +0000
@@ -3492,14 +3492,16 @@
     return;
 
   if (FRAME_FONT_OBJECT (f))
+    free_all_realized_faces (Qnil);
+
+  new_value = font_update_drivers (f, NILP (new_value) ? Qt : new_value);
+  if (NILP (new_value))
     {
-      free_all_realized_faces (Qnil);
-      Fclear_font_cache ();
+      if (NILP (old_value))
+	error ("No font backend available");
+      font_update_drivers (f, old_value);
+      error ("None of specified font backends are available");
     }
-
-  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))