aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/xfaces.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/xfaces.c b/src/xfaces.c
index 684b6ccfac7..bbc3448e457 100644
--- a/src/xfaces.c
+++ b/src/xfaces.c
@@ -733,9 +733,18 @@ recompute_basic_faces (struct frame *f)
733{ 733{
734 if (FRAME_FACE_CACHE (f)) 734 if (FRAME_FACE_CACHE (f))
735 { 735 {
736 bool non_basic_faces_cached =
737 FRAME_FACE_CACHE (f)->used > BASIC_FACE_ID_SENTINEL;
736 clear_face_cache (false); 738 clear_face_cache (false);
737 if (!realize_basic_faces (f)) 739 if (!realize_basic_faces (f))
738 emacs_abort (); 740 emacs_abort ();
741 /* The call to realize_basic_faces above recomputed the basic
742 faces and freed their fontsets, but if there are non-ASCII
743 faces in the cache, they might now be invalid, and they
744 reference fontsets that are no longer in Vfontset_table. We
745 therefore must force complete regeneration of all frame faces. */
746 if (non_basic_faces_cached)
747 f->face_change = true;
739 } 748 }
740} 749}
741 750