emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] Re: About the :distant-foreground face attribute


From: Daniel Colascione
Subject: Re: [PATCH] Re: About the :distant-foreground face attribute
Date: Mon, 13 Jan 2014 13:36:51 -0800
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.2.0

On 01/13/2014 01:29 PM, Jan Djärv wrote:
13 jan 2014 kl. 19:41 skrev Daniel Colascione <address@hidden>:

On 01/13/2014 08:33 AM, Jan Djärv wrote:
13 jan 2014 kl. 14:13 skrev Daniel Colascione <address@hidden>:
The patch uses the CIE L*A*B colorspace algorithm by default.

Do not change the defaults please. Reinstate the
*_selection_fg_color.
They are system defined and should be honored.

There are two sane defaults: the 24.3 behavior, where we always use the system 
selection foreground and background, and my proposed behavior, where we use the 
fontified foreground and automatically adjust it so that it's legible. The 
current behavior is worse because it uses the system selection foreground only 
sometimes and doesn't preserve theme hues when possible.

What theme hues? The default theme is not really a theme as
selection
colors are taken from system settings. And this is correct IMHO, any
application that doesn't do so by default (i.e. no user configuration
has been set in the application) is seriously broken.

Yes, but font-lock colors are specified with explicit colors (even in the default "theme"), and we want to preserve these even in the presence of a selection. We are *already* not honoring the system-specified foreground selection color. At the same time, we want to make sure that highlighted text is legible against a background of whatever the system selection color happens to be. The best way to do that is to automatically shift the foreground colors in value, but not hue, so that they remain legible while being recognizably the same color.

I think the results are actually pretty good. If a particular theme doesn't want to use automatic color adjustment, it can specify its own :contrast-function and do whatever it wants.

I would also support a scheme where, by default, 'region' sets foreground *and* background colors to the system selection colors and other faces don't show through. But we didn't decide to go in that direction.

If you talk about other themes, they can set :distant-foreground to
a
real color of their choosing and not rely on some automatically
generated one which most probably don't fit the theme anyway.
Automatically generated colors are a crutch which should be avoided if
possible, certainly not recommended.

There's no way that themes can take into account all the possible colors users and packages might use. Automatic contrast adjustment can do that.

If you want the :distant-foreground behavior, it can be accommodated in this patch. This patch also permits other schemes that some users might find more useful. We should push policy to user customization when possible instead of hardcoding policy in the logic of face attributes.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]