diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/xfaces.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/src/xfaces.c b/src/xfaces.c index cf1df227c61..c1d736eeb2e 100644 --- a/src/xfaces.c +++ b/src/xfaces.c | |||
| @@ -3687,6 +3687,14 @@ Value is a vector of face attributes. */) | |||
| 3687 | else | 3687 | else |
| 3688 | lface = global_lface; | 3688 | lface = global_lface; |
| 3689 | 3689 | ||
| 3690 | /* Changing a named face means that all realized faces depending on | ||
| 3691 | that face are invalid. Since we cannot tell which realized faces | ||
| 3692 | depend on the face, make sure they are all removed. This is done | ||
| 3693 | by incrementing face_change_count. The next call to | ||
| 3694 | init_iterator will then free realized faces. */ | ||
| 3695 | ++face_change_count; | ||
| 3696 | ++windows_or_buffers_changed; | ||
| 3697 | |||
| 3690 | xassert (LFACEP (lface)); | 3698 | xassert (LFACEP (lface)); |
| 3691 | check_lface (lface); | 3699 | check_lface (lface); |
| 3692 | return lface; | 3700 | return lface; |
| @@ -3754,6 +3762,14 @@ Value is TO. */) | |||
| 3754 | bcopy (XVECTOR (lface)->contents, XVECTOR (copy)->contents, | 3762 | bcopy (XVECTOR (lface)->contents, XVECTOR (copy)->contents, |
| 3755 | LFACE_VECTOR_SIZE * sizeof (Lisp_Object)); | 3763 | LFACE_VECTOR_SIZE * sizeof (Lisp_Object)); |
| 3756 | 3764 | ||
| 3765 | /* Changing a named face means that all realized faces depending on | ||
| 3766 | that face are invalid. Since we cannot tell which realized faces | ||
| 3767 | depend on the face, make sure they are all removed. This is done | ||
| 3768 | by incrementing face_change_count. The next call to | ||
| 3769 | init_iterator will then free realized faces. */ | ||
| 3770 | ++face_change_count; | ||
| 3771 | ++windows_or_buffers_changed; | ||
| 3772 | |||
| 3757 | return to; | 3773 | return to; |
| 3758 | } | 3774 | } |
| 3759 | 3775 | ||
| @@ -4264,6 +4280,14 @@ update_face_from_frame_parameter (f, param, new_value) | |||
| 4264 | if (NILP (f->face_alist)) | 4280 | if (NILP (f->face_alist)) |
| 4265 | return; | 4281 | return; |
| 4266 | 4282 | ||
| 4283 | /* Changing a named face means that all realized faces depending on | ||
| 4284 | that face are invalid. Since we cannot tell which realized faces | ||
| 4285 | depend on the face, make sure they are all removed. This is done | ||
| 4286 | by incrementing face_change_count. The next call to | ||
| 4287 | init_iterator will then free realized faces. */ | ||
| 4288 | ++face_change_count; | ||
| 4289 | ++windows_or_buffers_changed; | ||
| 4290 | |||
| 4267 | if (EQ (param, Qforeground_color)) | 4291 | if (EQ (param, Qforeground_color)) |
| 4268 | { | 4292 | { |
| 4269 | lface = lface_from_face_name (f, Qdefault, 1); | 4293 | lface = lface_from_face_name (f, Qdefault, 1); |