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

From: Dmitry Gutov <[email-masked]>
Date: Sat, 16 Nov 2019 10:17:34 +0200

On 16.11.2019 10:09, Eli Zaretskii wrote:

>> Well, it kind of does. At least, if the default value of the new
>> attribute is in line with the previous behavior, most faces won't have
>> to change.
> 
> I was talking about the case where the defface we have for that face
> DOES use the new attribute.  In that case, the default value of the
> attribute doesn't matter, since the defface uses some specific value,
> and that will always be a non-default value.

My point is those should be more rare. Or, well, bring significant value 
somehow.

> IOW, whenever we introduce a new face attribute and use it to modify
> the defface of a built-in face, this problem will pop up.

Yes. But in some of those cases third-party faces would not have to be 
updated. And if the default doesn't change the behavior from the 
previous Emacs releases, they certainly wouldn't have to be updated 
right away.

>> Another option that had been voiced is to split the value into two
>> attributes: :extend-foreground and :extend-background.
> 
> But :extend is not just about colors, it is also about underline,
> overline, strike-through, and box attributes.  In fact, the underline
> attribute was an even more important one, because extending it looks
> exceptionally ugly (we even had a few bug reports about that).

I think the idea for this approach is to consider underline, overline, 
strike-through to be a part of foreground. Maybe box as well, I'm not sure.

>> But that brings me to a question. I think whether the 'region' face has
>> :extend-background to nil or not is a personal choice. Would the user
>> have to fight and convince the author of the theme they are using to
>> change that attribute? Or will it be easy to apply personal
>> customization and call it a day?
> 
> Why would using a theme need anything beyond a simple face
> customization to modify :extend (or any other attribute)?  The author
> of a theme can do what they think is best, but users can always
> override that by customizing the face after loading the theme.

OK, good. :-)