comparison src/frame.c @ 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 ceb3fe7d84dd
children 606f2d163a64
comparison
equal deleted inserted replaced
91247:217eabc2db11 91248:ed6fa90c5c89
3490 3490
3491 if (! NILP (old_value) && ! NILP (Fequal (old_value, new_value))) 3491 if (! NILP (old_value) && ! NILP (Fequal (old_value, new_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); 3496
3497 Fclear_font_cache (); 3497 new_value = font_update_drivers (f, NILP (new_value) ? Qt : new_value);
3498 }
3499
3500 new_value = font_update_drivers (f, 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))
3506 { 3508 {
3507 Lisp_Object frame; 3509 Lisp_Object frame;