diff options
| -rw-r--r-- | src/xfaces.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/xfaces.c b/src/xfaces.c index e4d19440bc9..3806fa90e23 100644 --- a/src/xfaces.c +++ b/src/xfaces.c | |||
| @@ -2085,7 +2085,7 @@ merge_face_vectors (struct window *w, struct frame *f, | |||
| 2085 | memcpy (tmp, to, LFACE_VECTOR_SIZE * sizeof *tmp); | 2085 | memcpy (tmp, to, LFACE_VECTOR_SIZE * sizeof *tmp); |
| 2086 | 2086 | ||
| 2087 | merge_face_ref (w, f, from[LFACE_INHERIT_INDEX], | 2087 | merge_face_ref (w, f, from[LFACE_INHERIT_INDEX], |
| 2088 | tmp, false, named_merge_points, 0); | 2088 | tmp, false, named_merge_points, attr_filter); |
| 2089 | 2089 | ||
| 2090 | if (NILP (tmp[attr_filter]) | 2090 | if (NILP (tmp[attr_filter]) |
| 2091 | || UNSPECIFIEDP (tmp[attr_filter])) | 2091 | || UNSPECIFIEDP (tmp[attr_filter])) |
| @@ -2172,7 +2172,12 @@ merge_named_face (struct window *w, | |||
| 2172 | bool ok = get_lface_attributes (w, f, face_name, from, false, | 2172 | bool ok = get_lface_attributes (w, f, face_name, from, false, |
| 2173 | named_merge_points); | 2173 | named_merge_points); |
| 2174 | 2174 | ||
| 2175 | if (ok && (attr_filter == 0 || !NILP(from[attr_filter]))) | 2175 | if (ok && (attr_filter == 0 /* No filter. */ |
| 2176 | || (!NILP(from[attr_filter]) /* Filter, but specified. */ | ||
| 2177 | && !UNSPECIFIEDP(from[attr_filter])) | ||
| 2178 | || (!NILP(from[attr_filter]) /* Filter, unspecified, but inherited. */ | ||
| 2179 | && UNSPECIFIEDP(from[attr_filter]) | ||
| 2180 | && !NILP (from[LFACE_INHERIT_INDEX])))) | ||
| 2176 | merge_face_vectors (w, f, from, to, named_merge_points, attr_filter); | 2181 | merge_face_vectors (w, f, from, to, named_merge_points, attr_filter); |
| 2177 | 2182 | ||
| 2178 | return ok; | 2183 | return ok; |