GNU bug report logs - #69942
30.0.50; Fontification of radio-button widget labels

Previous Next

Package: emacs;

Reported by: Stephen Berman <stephen.berman <at> gmx.net>

Date: Fri, 22 Mar 2024 15:06:01 UTC

Severity: normal

Found in version 30.0.50

Done: Stephen Berman <stephen.berman <at> gmx.net>

Bug is archived. No further changes may be made.

Full log


Message #53 received at 69942 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: maurooaranda <at> gmail.com
Cc: 69942 <at> debbugs.gnu.org, stephen.berman <at> gmx.net
Subject: Re: bug#69942: 30.0.50; Fontification of radio-button widget labels
Date: Sat, 25 May 2024 10:41:40 +0300
Ping! Ping!  Can we please make some progress here?

> Cc: 69942 <at> debbugs.gnu.org, maurooaranda <at> gmail.com
> Date: Thu, 09 May 2024 10:22:35 +0300
> From: Eli Zaretskii <eliz <at> gnu.org>
> 
> Ping!  Any further comments, or is there agreement to install the
> proposed patch?
> 
> > From: Stephen Berman <stephen.berman <at> gmx.net>
> > Cc: Eli Zaretskii <eliz <at> gnu.org>,  69942 <at> debbugs.gnu.org
> > Date: Fri, 26 Apr 2024 14:47:26 +0200
> > 
> > On Sun, 21 Apr 2024 21:45:21 +0200 Stephen Berman <stephen.berman <at> gmx.net> wrote:
> > 
> > > On Thu, 18 Apr 2024 15:37:58 +0200 Stephen Berman <stephen.berman <at> gmx.net> wrote:
> > >
> > >> On Thu, 18 Apr 2024 07:07:43 -0300 Mauro Aranda <maurooaranda <at> gmail.com> wrote:
> > >>
> > >>> Eli Zaretskii <eliz <at> gnu.org> writes:
> > >>>
> > >>>>> Date: Mon, 8 Apr 2024 07:58:44 -0300
> > >>>>> Cc: 69942 <at> debbugs.gnu.org
> > >>>>> From: Mauro Aranda <maurooaranda <at> gmail.com>
> > >>>>>
> > >>>>> On 6/4/24 06:02, Eli Zaretskii wrote:
> > >>>>>  >> From: Stephen Berman <stephen.berman <at> gmx.net>
> > >>>>>  >> Cc: Eli Zaretskii <eliz <at> gnu.org>, 69942 <at> debbugs.gnu.org
> > >>>>>  >> Date: Mon, 01 Apr 2024 17:21:27 +0200
> > >>>>>  >>
> > >>>>>  >> On Mon, 25 Mar 2024 01:40:36 +0100 Stephen Berman
> > >>>>> <stephen.berman <at> gmx.net> 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
> 
> 
> 
> 




This bug report was last modified 329 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.