diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/frame.c | 14 |
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)) |