# HG changeset patch # User Richard M. Stallman # Date 1013617267 0 # Node ID 93581691334651f174936fb7562ae65fb57150cb # Parent f4b001827b85ca8df7cd722f1fba8b110625f192 (Finternal_make_lisp_face, Finternal_copy_lisp_face) (update_face_from_frame_parameter): Increment face_change_count and windows_or_buffers_changed to force redisplay using changed faces. diff -r f4b001827b85 -r 935816913346 src/xfaces.c --- a/src/xfaces.c Wed Feb 13 16:15:52 2002 +0000 +++ b/src/xfaces.c Wed Feb 13 16:21:07 2002 +0000 @@ -3687,6 +3687,14 @@ else lface = global_lface; + /* Changing a named face means that all realized faces depending on + that face are invalid. Since we cannot tell which realized faces + depend on the face, make sure they are all removed. This is done + by incrementing face_change_count. The next call to + init_iterator will then free realized faces. */ + ++face_change_count; + ++windows_or_buffers_changed; + xassert (LFACEP (lface)); check_lface (lface); return lface; @@ -3754,6 +3762,14 @@ bcopy (XVECTOR (lface)->contents, XVECTOR (copy)->contents, LFACE_VECTOR_SIZE * sizeof (Lisp_Object)); + /* Changing a named face means that all realized faces depending on + that face are invalid. Since we cannot tell which realized faces + depend on the face, make sure they are all removed. This is done + by incrementing face_change_count. The next call to + init_iterator will then free realized faces. */ + ++face_change_count; + ++windows_or_buffers_changed; + return to; } @@ -4264,6 +4280,14 @@ if (NILP (f->face_alist)) return; + /* Changing a named face means that all realized faces depending on + that face are invalid. Since we cannot tell which realized faces + depend on the face, make sure they are all removed. This is done + by incrementing face_change_count. The next call to + init_iterator will then free realized faces. */ + ++face_change_count; + ++windows_or_buffers_changed; + if (EQ (param, Qforeground_color)) { lface = lface_from_face_name (f, Qdefault, 1);