Subject: Re: bug#13476: 24.3.50; Reverting scroll-bar face customization has no effect

From: Mauro Aranda <[email-masked]>
Date: Mon, 28 Feb 2022 08:43:44 -0300

[Unarchive the bug before sending a message, so that the message reaches
the bug tracker]

Po Lu <[email-masked]> writes:

> Mauro Aranda <[email-masked]> writes:
>
>> I've tried the attached patch.  Now reverting the foreground color
>> works, and I haven't seen unintended effects so far.
>
> I'm afraid that patch doesn't make sense, and causes bad side-effects
> with Athena and Motif scroll bars.
>
> With toolkit scroll bars, the foreground and background colors must be
> unspecified by default, so that the toolkit default is used instead.

Ok, sorry about that.

> So I think the bug lies in Custom (it should reset the value to
> "unspecified") and not the declaration of the scroll-bar face.

Why do you think it is a bug in Custom?

Custom relies on faces.el to update a customized face and to revert to
the default/standard.  So, with the old spec for scroll-bar:

(defface scroll-bar '((t nil))
  "Basic face for the scroll bar colors under X.")

;; Make sure the spec is set.
(face-spec-set 'scroll-bar '((t (:foreground "green"))) nil)
;; Reset to the standard.
(face-spec-set 'scroll-bar nil 'reset)

The scroll-bar foreground color stays green in the selected frame.

There's no Custom code involved there.

And face-spec-reset-face is setting all attributes to unspecified, I
thought that was clear from
https://debbugs.gnu.org/cgi/bugreport.cgi?bug=13476#8