aboutsummaryrefslogtreecommitdiffstats
path: root/src/frame.c
diff options
context:
space:
mode:
authorKenichi Handa <[email protected]>2007-12-18 11:43:51 +0000
committerKenichi Handa <[email protected]>2007-12-18 11:43:51 +0000
commitdfdf55c0a978af7dedef98afc3ad340eae41e6a2 (patch)
tree7c5dfc0f6d2e2b062eaf5fcc9a180872be1e22de /src/frame.c
parentca4da08aaada9de39390f339aeba00411f8edcc2 (diff)
(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.
Diffstat (limited to 'src/frame.c')
-rw-r--r--src/frame.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/src/frame.c b/src/frame.c
index f081de50f2..c576214254 100644
--- a/src/frame.c
+++ b/src/frame.c
@@ -3492,14 +3492,16 @@ x_set_font_backend (f, new_value, old_value)
return;
if (FRAME_FONT_OBJECT (f))
- {
- free_all_realized_faces (Qnil);
- Fclear_font_cache ();
- }
+ free_all_realized_faces (Qnil);
- new_value = font_update_drivers (f, new_value);
+ new_value = font_update_drivers (f, NILP (new_value) ? Qt : new_value);
if (NILP (new_value))
- error ("No font backend available");
+ {
+ if (NILP (old_value))
+ error ("No font backend available");
+ font_update_drivers (f, old_value);
+ error ("None of specified font backends are available");
+ }
store_frame_param (f, Qfont_backend, new_value);
if (FRAME_FONT_OBJECT (f))