Subject: bug#69942: 30.0.50; Fontification of radio-button widget labels

From: Eli Zaretskii <[email-masked]>
Date: Sat, 08 Jun 2024 14:48:21 +0300

Ping! Ping! Ping!  Mauro, any objections to installing the current
version of the patch?

> From: Stephen Berman <[email-masked]>
> Cc: [email-masked],  [email-masked]
> Date: Sat, 25 May 2024 11:29:28 +0200
> 
> On Sat, 25 May 2024 10:41:40 +0300 Eli Zaretskii <[email-masked]> wrote:
> 
> > Ping! Ping!  Can we please make some progress here?
> 
> I haven't noticed any problems with the current version of the patch, so
> if it were up to me, I'd install it.  (The caveat about my ignorance of
> widget-inline-p remains, however.)
> 
> Steve Berman
> 
> >> Cc: [email-masked], [email-masked]
> >> Date: Thu, 09 May 2024 10:22:35 +0300
> >> From: Eli Zaretskii <[email-masked]>
> >> 
> >> Ping!  Any further comments, or is there agreement to install the
> >> proposed patch?
> >> 
> >> > From: Stephen Berman <[email-masked]>
> >> > Cc: Eli Zaretskii <[email-masked]>,  [email-masked]
> >> > Date: Fri, 26 Apr 2024 14:47:26 +0200
> >> > 
> >> > On Sun, 21 Apr 2024 21:45:21 +0200 Stephen Berman <[email-masked]> wrote:
> >> > 
> >> > > On Thu, 18 Apr 2024 15:37:58 +0200 Stephen Berman
> >> > > <[email-masked]> wrote:
> >> > >
> >> > >> On Thu, 18 Apr 2024 07:07:43 -0300 Mauro Aranda
> >> > >> <[email-masked]> wrote:
> >> > >>
> >> > >>> Eli Zaretskii <[email-masked]> writes:
> >> > >>>
> >> > >>>>> Date: Mon, 8 Apr 2024 07:58:44 -0300
> >> > >>>>> Cc: [email-masked]
> >> > >>>>> From: Mauro Aranda <[email-masked]>
> >> > >>>>>
> >> > >>>>> On 6/4/24 06:02, Eli Zaretskii wrote:
> >> > >>>>>  >> From: Stephen Berman <[email-masked]>
> >> > >>>>>  >> Cc: Eli Zaretskii <[email-masked]>, [email-masked]
> >> > >>>>>  >> Date: Mon, 01 Apr 2024 17:21:27 +0200
> >> > >>>>>  >>
> >> > >>>>>  >> On Mon, 25 Mar 2024 01:40:36 +0100 Stephen Berman
> >> > >>>>> <[email-masked]> wrote:
> >> > >>>>>  >>
> >> > >>>>>  >>> Ok, I've gotten further with implementing disinguishing by faces
> >> > >>>>>  >>> selected (chosen) and unselected radio buttons in radio-button-choice
> >> > >>>>>  >>> widgets and check boxes in checklist widgets, see the attached patch.
> >> > >>>>>  >>> Initial tests seem ok, but it definitely needs more testing.
> >> > >>>>>  >>
> >> > >>>>>  >> Any comments on this patch for using a widget-unselected face?  I have
> >> > >>>>>  >> been detained from further testing this past week, but can now resume.
> >> > >>>>>  >
> >> > >>>>>  > Mauro, any further comments?
> >> > >>>>>
> >> > >>>>> Hi Eli and Stephen,
> >> > >>>>>
> >> > >>>>> Please forgive me, for the past 2 weeks I haven't been able to do any
> >> > >>>>> computer stuff.  If it's OK, please give me until the weekend so I
> >> > >>>>> can catch up with this and the other 2 bug reports by Stephen.
> >> > >>>>
> >> > >>>> Mauro, were you able to find time to look into this and the other 2
> >> > >>>> bugs?
> >> > >>>
> >> > >>> I have, just now.  The patch looks good to me.  It'll be great if
> >> > >>> Stephen can add some documentation to the manual, so it stays updated.
> >> > >>> If not, I can do that in a few days.
> >> > >>
> >> > >> Sure, I'll add documentation and post it here for approval before
> >> > >> pushing the changes.
> >> > >
> >> > > I've encountered some problems with the patch.  One is that it breaks
> >> > > the display of all face attributes in the customize-face buffer.  I've
> >> > > determined the part of the patch that triggers this, though I haven't
> >> > > yet figured out just why this bit of code breaks the display.  Also, it
> >> > > appears that the widget-unselected face does not completely replace
> >> > > widget-inactive where it's intended to do so, but I need to do more
> >> > > testing and debugging here to find out why.  Until I've fixed these
> >> > > issues the patch is not suitable for installing, so I'm also holding off
> >> > > with the accompanying documentation.  (But in preparation for the
> >> > > documentation I looked more closely at the Widget manual and found
> >> > > several typos and other issues, for which I opened bug#70502.)
> >> > 
> >> > The breakage in displaying all face attributes in the customize-face
> >> > buffer was caused by the invocation of `(widget-specify-selected child)'
> >> > in widget-checklist-add-item in the cond-clause satisfying
> >> > `(widget-inline-p type t)'.  I still don't understand why it has this
> >> > effect, and I have to admit that I don't understand what an inline
> >> > widget is.  But simply omitting the invocation of
> >> > `(widget-specify-selected child)' at this point in the patch does avoid
> >> > the customize-face breakage and I have not noticed any problems due to
> >> > this omission.
> >> > 
> >> > As for the problematic interaction between the widget-unselected and
> >> > widget-inactive faces, this seems to have been due to my having copied
> >> > most of the definition of widget-specify-unselected from that of
> >> > widget-specify-inactive, and specifically, copying the overlay priority.
> >> > In the attached patch, widget-specify-unselected now uses a lower
> >> > overlay priority than the one used in widget-specify-inactive, and in my
> >> > tests this yields the desired results: the labels of active checkboxes
> >> > and radio-buttons have widget-unselected face but when these widgets are
> >> > deactivated, the labels have widget-inactive face.
> >> > 
> >> > Another change I've made in the attached patch is to have the default
> >> > value of widget-unselected face inherit from widget-inactive instead of
> >> > inheriting from shadow face, like widget-inactive does by default.  This
> >> > way, if a user customizes widget-inactive, that will also apply by
> >> > default to widget-unselected, thus retaining the current default widget
> >> > UI where the labels of checkboxes and radio-buttons have widget-inactive
> >> > face.  (Thus, the "desired results" in the preceding paragraph are only
> >> > visible when widget-unselected face is customized to differ from
> >> > widget-unselected face.)
> >> > 
> >> > Finally, regarding documentation of widget-unselected face in the Widget
> >> > manual, I think it would be helpful for the documentation to mention the
> >> > use case that motivated introducing it (following Mauro's suggestion to
> >> > use a face instead of a defcustom), namely, to visually distinguish the
> >> > labels of unselected and inactive widgets.  Here is what I suggest:
> >> > 
> >> > @deffn Face widget-unselected
> >> > Face used for unselected widgets.  This face is also used on the text
> >> > labels of radio-button and checkbox widgets.
> >> > 
> >> > The default value inherits @code{widget-inactive} face.  If you want to
> >> > visually distinguish the labels of unselected active radio-button or
> >> > checkbox widgets from the labels of unselected inactive widgets,
> >> > customize this face to a non-default value.
> >> > @end deffn
> >> > 
> >> > Since the recent widget.texi changes that include documenting
> >> > widget-inactive face have not yet been merged to master, I haven't
> >> > included the propopsed documentaton of widget-unselected in the attached
> >> > patch, but if approved, will of course add it after the merge.
> >> > 
> >> > Steve Berman
> >> 
> >> 
> >> 
> >> 
>