aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/xfaces.c9
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;