aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKenichi Handa2007-12-18 11:43:51 +0000
committerKenichi Handa2007-12-18 11:43:51 +0000
commitdfdf55c0a978af7dedef98afc3ad340eae41e6a2 (patch)
tree7c5dfc0f6d2e2b062eaf5fcc9a180872be1e22de
parentca4da08aaada9de39390f339aeba00411f8edcc2 (diff)
downloademacs-dfdf55c0a978af7dedef98afc3ad340eae41e6a2.tar.gz
emacs-dfdf55c0a978af7dedef98afc3ad340eae41e6a2.zip
(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.
-rw-r--r--src/frame.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/src/frame.c b/src/frame.c
index f081de50f29..c5762142541 100644
--- a/src/frame.c
+++ b/src/frame.c
@@ -3492,14 +3492,16 @@ x_set_font_backend (f, new_value, old_value)
3492 return; 3492 return;
3493 3493
3494 if (FRAME_FONT_OBJECT (f)) 3494 if (FRAME_FONT_OBJECT (f))
3495 { 3495 free_all_realized_faces (Qnil);
3496 free_all_realized_faces (Qnil);
3497 Fclear_font_cache ();
3498 }
3499 3496
3500 new_value = font_update_drivers (f, new_value); 3497 new_value = font_update_drivers (f, NILP (new_value) ? Qt : new_value);
3501 if (NILP (new_value)) 3498 if (NILP (new_value))
3502 error ("No font backend available"); 3499 {
3500 if (NILP (old_value))
3501 error ("No font backend available");
3502 font_update_drivers (f, old_value);
3503 error ("None of specified font backends are available");
3504 }
3503 store_frame_param (f, Qfont_backend, new_value); 3505 store_frame_param (f, Qfont_backend, new_value);
3504 3506
3505 if (FRAME_FONT_OBJECT (f)) 3507 if (FRAME_FONT_OBJECT (f))