Subject: Re: bug#37774: 27.0.50; new :extend attribute broke visuals of all themes and other packages

From: Eli Zaretskii <[email-masked]>
Date: Mon, 25 Nov 2019 18:00:33 +0200

> From: Dmitry Gutov <[email-masked]>
> Date: Mon, 25 Nov 2019 02:29:26 +0200
> 
> > At least, I see that even though diff-refine-added and diff-refine-removed
> > faces have no :extend face attribute, but still extend to the window edge.
> 
> Indeed. I'm attaching a screenshot to illustrate.

Thanks.  Face merging didn't work correctly with faces some of which
have :extend non-nil and some don't, when face inheritance was
involved.

Should be fixed now.

> BTW, the diff-context needs ':extend t' as well.

Feel free to make that change (although when did you last see a
context diff?).

> But that's of little importance since as soon as I load a custom
> theme, whatever defaults were there don't seem to matter.

We need to modify all the themes we provide to specify :extend for
faces where we do that by default.  It seems there's no way around
that, since the semantics of custom-theme-set-faces is clearly to
reset all face attributes to 'unspecified' before applying the face
spec, so keeping some attributes from the default face spec is out of
the question, unfortunately.  It's clear that the faces stuff was not
designed to accommodate addition of attributes easily.