GNU bug report logs -
#34001
26.1.90; :distant-foreground face property fails to work in most cases
Previous Next
Full log
View this message in rfc822 format
Well, even if we change the backend for how color distance is
measured, we’ll probably still need a user option for “how much color
distance is required for two colors to be considered appropriately
distant,” so it seems like a good place to start in any event.
Thanks!
On Tue, Jan 15, 2019 at 5:08 PM Federico Tedin <federicotedin <at> gmail.com> wrote:
>
> Tina Russell <tinakellyrussell <at> gmail.com> writes:
>
> > :distant-foreground is a very useful concept for a face property: text
> > will be rendered with the :foreground color, unless it’s too close to
> > the current background color, in which case :distant-foreground kicks
> > in. Like, try this in Eshell or IELM:
> >
> > (propertize "Greetings, esteemed Emacs developers!" 'face '(:foreground
> > "yellow" :background "yellow"))
> >
> > You’ll get a solid band of yellow, of course. But, with
> > :distant-foreground…
> >
> > (propertize "Greetings, esteemed Emacs developers!" 'face '(:foreground
> > "yellow" :background "yellow" :distant-foreground "black"))
> >
> > Now it is a friendly greeting. (Naturally, you wouldn’t normally set
> > :background and :distant-foreground in the same face, this is just an
> > example.)
> >
> > But, try this:
> >
> > (propertize "Greetings, esteemed Emacs developers!" 'face '(:foreground
> > "yellow" :background "white" :distant-foreground "black"))
> >
> > :distant-foreground doesn’t kick in—and you’re left with yellow-on-white
> > text that’s impossible to read, the exact scenario that
> > :distant-foreground was quite rightly designed to avoid.
> >
> > I’m not the only one who’s noticed this; there’s a good StackExchange
> > thread from 2015 here:
> > https://emacs.stackexchange.com/questions/7982/ The author notes that
> > there should be a user option to set the amount of “distance” (between
> > foreground and background colors) that is required for
> > distant-foreground to kick in, and adds that a good way to measure
> > color distance in real-world circumstances is described here:
> > http://web.mst.edu/~rhall/web_design/color_readability.html A commenter
> > suggested that he file a bug, but I can’t find an Emacs bug report
> > related to this issue, so I’m filing this now.
> >
> > I really hope this gets addressed, because :distant-foreground is a
> > really nice and clever feature. Thanks!
> >
> > In GNU Emacs 26.1.90 (build 2, x86_64-pc-linux-gnu, GTK+ Version 3.22.30)
> > of 2019-01-02 built on pannychis
> > Repository revision: 08840f2f7bfc6144bd163dd85efe87d28541e425
> > Windowing system distributor 'The X.Org Foundation', version 11.0.11906000
> > System Description: Ubuntu 18.04.1 LTS
> >
> > Configured using:
> > 'configure --with-xaw3d --with-modules --with-xwidgets'
>
> I've created a patch that introduces a new variable
> `face-near-same-color-threshold', with a default value of 30000 (as was
> defined in NEAR_SAME_COLOR_THRESHOLD in xfaces.c). Changing this
> variable's value will make certain color combinations be considered as
> 'same', which will lead to :distant-foreground being used. For example:
>
> M-: (setq face-near-same-color-threshold 200000)
> M-: (clear-font-cache)
>
> Then, using your third example, the text will be displayed with a black
> foregound.
>
> Is this a reasonable fix, or should we consider implementing another way
> of measuring distance between colors like Tina mentioned?
>
This bug report was last modified 6 years and 81 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.