unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#75171: 30.0.50; Checklist widget inside a group does not initialize correctly
@ 2024-12-29  8:33 Al Haji-Ali
  0 siblings, 0 replies; only message in thread
From: Al Haji-Ali @ 2024-12-29  8:33 UTC (permalink / raw)
  To: 75171


The following function creates four widgets (two radio button lists and two checklists) inside a group. All lists have an initial value, while the group has a nil value. Strangely, the radio buttons get initialized correctly (selecting the correct button based on their value), but the checkboxes do not (all boxes are unchecked regardless of the value). Removing the group results in correct initialization.

--8<---------------cut here---------------start------------->8---
(defun widget-test ()
  (let ((items '((item :format "%[One%] " :value 1)
                 (item :format "%[Two%] " :value 2)
                 (item :format "%[Three%] " :value 3))))
    (widget-create
     'group
     (append '(radio-button-choice
               :inline t
               :format "Inline radio:\n%v\n"
               :value 2)
             items)
     (append '(radio-button-choice
               :format "Not inline radio:\n%v\n"
               :value 2)
             items)
     (append '(checklist
               :inline t
               :format "Inline checks:\n%v\n"
               :value (1 2))
             items)
     (append '(checklist
               :format "Not inline checks:\n%v\n"
               :value (1 2))
             items)))
  (widget-setup))
--8<---------------cut here---------------end--------------->8---


If this is unintended behaviour, I managed to fix the inline version of the checklists with this advice

--8<---------------cut here---------------start------------->8---
(advice-add 'widget-checklist-match-inline
            :around
            (lambda (old-fn wid val)
              (when val
                (funcall old-fn wid val))))
--8<---------------cut here---------------end--------------->8---

The non-inline version probably requires a fix in `widget-checklist-match`, but I can't make out the logic in this function (it seems to return non-nil when not matching?!).

If it is intended behaviour, how can I correctly set the value of a checklist? and why is there a discrepancy between radio buttons and check lists?

-- Al





^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2024-12-29  8:33 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-12-29  8:33 bug#75171: 30.0.50; Checklist widget inside a group does not initialize correctly Al Haji-Ali

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).