* Start of Emacs 30 release cycle @ 2024-06-23 13:44 Eli Zaretskii 2024-06-24 8:32 ` Stephen Berman 2024-07-01 13:15 ` nxml comments fix (was: Start of Emacs 30 release cycle) Konstantin Kharlamov 0 siblings, 2 replies; 17+ messages in thread From: Eli Zaretskii @ 2024-06-23 13:44 UTC (permalink / raw) To: emacs-devel Hi, I've created the emacs-30 release branch, which will be used to release the Emacs 30.x series. Changes installed on this branch should be bugfixes that do not modify too low-level code, and thus don't risk destabilizing the codebase we have on that branch now. All the other changes, including new features, should be installed on master, as usual. If in doubt whether a particular change should be installed on master or on the release branch, please ask here. Please build the emacs-30 branch on your system and with your configuration options, and report any problems you see (via "M-x report-emacs-bug"). I hope to make the first pretest of Emacs 30.1 in about a month from now. Thanks. ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Start of Emacs 30 release cycle 2024-06-23 13:44 Start of Emacs 30 release cycle Eli Zaretskii @ 2024-06-24 8:32 ` Stephen Berman 2024-06-24 12:47 ` Eli Zaretskii 2024-07-01 13:15 ` nxml comments fix (was: Start of Emacs 30 release cycle) Konstantin Kharlamov 1 sibling, 1 reply; 17+ messages in thread From: Stephen Berman @ 2024-06-24 8:32 UTC (permalink / raw) To: Eli Zaretskii; +Cc: emacs-devel On Sun, 23 Jun 2024 16:44:48 +0300 Eli Zaretskii <eliz@gnu.org> wrote: > I've created the emacs-30 release branch, which will be used to > release the Emacs 30.x series. Changes installed on this branch > should be bugfixes that do not modify too low-level code, and thus > don't risk destabilizing the codebase we have on that branch now. All > the other changes, including new features, should be installed on > master, as usual. If in doubt whether a particular change should be > installed on master or on the release branch, please ask here. Can the patches for wid-edit.el in bug#69942 and bug#70594 still be installed on the emacs-30 branch? In particular, the patch in bug#70594 fixes (or, as I see it, completes) commit 91333dacfa1, which is on the emacs-30 branch. Steve Berman ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Start of Emacs 30 release cycle 2024-06-24 8:32 ` Stephen Berman @ 2024-06-24 12:47 ` Eli Zaretskii 2024-06-24 13:49 ` Stephen Berman 0 siblings, 1 reply; 17+ messages in thread From: Eli Zaretskii @ 2024-06-24 12:47 UTC (permalink / raw) To: Stephen Berman, maurooaranda; +Cc: emacs-devel > From: Stephen Berman <stephen.berman@gmx.net> > Cc: emacs-devel@gnu.org > Date: Mon, 24 Jun 2024 10:32:21 +0200 > > On Sun, 23 Jun 2024 16:44:48 +0300 Eli Zaretskii <eliz@gnu.org> wrote: > > > I've created the emacs-30 release branch, which will be used to > > release the Emacs 30.x series. Changes installed on this branch > > should be bugfixes that do not modify too low-level code, and thus > > don't risk destabilizing the codebase we have on that branch now. All > > the other changes, including new features, should be installed on > > master, as usual. If in doubt whether a particular change should be > > installed on master or on the release branch, please ask here. > > Can the patches for wid-edit.el in bug#69942 and bug#70594 still be > installed on the emacs-30 branch? In particular, the patch in bug#70594 > fixes (or, as I see it, completes) commit 91333dacfa1, which is on the > emacs-30 branch. Given the efforts it took me to get any responses to repeated pings in discussing those bugs, it would be justified for me to say NO. (One of the two bugs still doesn't have a consensus about what to install, AFAIU.) But I'm willing to give people one more chance. I think it'd also be good to see the patches themselves, since we've seen them so long ago. ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Start of Emacs 30 release cycle 2024-06-24 12:47 ` Eli Zaretskii @ 2024-06-24 13:49 ` Stephen Berman 2024-06-24 15:05 ` Eli Zaretskii 0 siblings, 1 reply; 17+ messages in thread From: Stephen Berman @ 2024-06-24 13:49 UTC (permalink / raw) To: Eli Zaretskii; +Cc: maurooaranda, emacs-devel [-- Attachment #1: Type: text/plain, Size: 1875 bytes --] On Mon, 24 Jun 2024 15:47:24 +0300 Eli Zaretskii <eliz@gnu.org> wrote: >> From: Stephen Berman <stephen.berman@gmx.net> >> Cc: emacs-devel@gnu.org >> Date: Mon, 24 Jun 2024 10:32:21 +0200 >> >> On Sun, 23 Jun 2024 16:44:48 +0300 Eli Zaretskii <eliz@gnu.org> wrote: >> >> > I've created the emacs-30 release branch, which will be used to >> > release the Emacs 30.x series. Changes installed on this branch >> > should be bugfixes that do not modify too low-level code, and thus >> > don't risk destabilizing the codebase we have on that branch now. All >> > the other changes, including new features, should be installed on >> > master, as usual. If in doubt whether a particular change should be >> > installed on master or on the release branch, please ask here. >> >> Can the patches for wid-edit.el in bug#69942 and bug#70594 still be >> installed on the emacs-30 branch? In particular, the patch in bug#70594 >> fixes (or, as I see it, completes) commit 91333dacfa1, which is on the >> emacs-30 branch. > > Given the efforts it took me to get any responses to repeated pings in > discussing those bugs, it would be justified for me to say NO. In case you've forgotten, I responded numerous times, including finding shortcomings in previous patches of mine and correcting them (and in another case (bug#69941) even withdrawing my patch as unsuitable). I appreciate that Mauro has more familiarity and experience with the widget code than I do, but maybe he just doesn't have time for it now. > (One > of the two bugs still doesn't have a consensus about what to install, > AFAIU.) But I'm willing to give people one more chance. I think it'd > also be good to see the patches themselves, since we've seen them so > long ago. Here's the patch for bug#69942: [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #2: widget-unselected face patch --] [-- Type: text/x-patch, Size: 5230 bytes --] diff --git a/lisp/wid-edit.el b/lisp/wid-edit.el index dc481d4d0a5..b7673b01c73 100644 --- a/lisp/wid-edit.el +++ b/lisp/wid-edit.el @@ -555,6 +555,29 @@ widget-specify-active (delete-overlay inactive) (widget-put widget :inactive nil)))) +(defface widget-unselected + '((t :inherit widget-inactive)) + "Face used for unselected widgets." + :group 'widget-faces + :version "30.1") + +(defun widget-specify-unselected (widget from to) + "Fontify WIDGET as unselected (not chosen)." + (let ((overlay (make-overlay from to nil t nil))) + (overlay-put overlay 'face 'widget-unselected) + (overlay-put overlay 'evaporate t) + ;; The overlay priority here should be lower than the priority in + ;; `widget-specify-active' (bug#69942). + (overlay-put overlay 'priority 90) + (widget-put widget :unselected overlay))) + +(defun widget-specify-selected (widget) + "Remove fontification of WIDGET as unselected (not chosen)." + (let ((unselected (widget-get widget :unselected))) + (when unselected + (delete-overlay unselected) + (widget-put widget :unselected nil)))) + ;;; Widget Properties. (defsubst widget-type (widget) @@ -2439,10 +2462,16 @@ 'checkbox (defun widget-checkbox-action (widget &optional event) "Toggle checkbox, notify parent, and set active state of sibling." (widget-toggle-action widget event) - (let ((sibling (widget-get-sibling widget))) + (let* ((sibling (widget-get-sibling widget)) + (from (widget-get sibling :from)) + (to (widget-get sibling :to))) (when sibling - (widget-apply sibling - (if (widget-value widget) :activate :deactivate)) + (if (widget-value widget) + (progn + (widget-apply sibling :activate) + (widget-specify-selected sibling)) + :deactivate + (widget-specify-unselected sibling from to)) (widget-clear-undo)))) ;;; The `checklist' Widget. @@ -2498,15 +2527,18 @@ widget-checklist-add-item ((eq escape ?v) (setq child (cond ((not chosen) - (let ((child (widget-create-child widget type))) - (widget-apply child :deactivate) + (let* ((child (widget-create-child widget type)) + (from (widget-get child :from)) + (to (widget-get child :to))) + (widget-specify-unselected child from to) child)) ((widget-inline-p type t) (widget-create-child-value widget type (cdr chosen))) (t (widget-create-child-value - widget type (car (cdr chosen))))))) + widget type (car (cdr chosen))) + (widget-specify-selected child))))) (t (error "Unknown escape `%c'" escape))))) ;; Update properties. @@ -2677,8 +2709,11 @@ widget-radio-add-item (widget-create-child-value widget type value) (widget-create-child widget type))) - (unless chosen - (widget-apply child :deactivate))) + (if chosen + (widget-specify-selected child) + (let ((from (widget-get child :from)) + (to (widget-get child :to))) + (widget-specify-unselected child from to)))) (t (error "Unknown escape `%c'" escape))))) ;; Update properties. @@ -2728,14 +2763,17 @@ widget-radio-value-set (dolist (current (widget-get widget :children)) (let* ((button (widget-get current :button)) (match (and (not found) - (widget-apply current :match value)))) + (widget-apply current :match value))) + (from (widget-get current :from)) + (to (widget-get current :to))) (widget-value-set button match) (if match - (progn - (widget-value-set current value) - (widget-apply current :activate)) - (widget-apply current :deactivate)) - (setq found (or found match)))))) + (progn + (widget-value-set current value) + (widget-apply current :activate) + (widget-specify-selected current)) + (widget-specify-unselected current from to)) + (setq found (or found match)))))) (defun widget-radio-validate (widget) ;; Valid if we have made a valid choice. @@ -2755,13 +2793,16 @@ widget-radio-action (let ((buttons (widget-get widget :buttons))) (when (memq child buttons) (dolist (current (widget-get widget :children)) - (let* ((button (widget-get current :button))) + (let* ((button (widget-get current :button)) + (from (widget-get current :from)) + (to (widget-get current :to))) (cond ((eq child button) (widget-value-set button t) - (widget-apply current :activate)) + (widget-apply current :activate) + (widget-specify-selected current)) ((widget-value button) (widget-value-set button nil) - (widget-apply current :deactivate))))))) + (widget-specify-unselected current from to))))))) ;; Pass notification to parent. (widget-apply widget :notify child event)) [-- Attachment #3: Type: text/plain, Size: 38 bytes --] And here's the patch for bug#70594: [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #4: widget-move patch --] [-- Type: text/x-patch, Size: 2675 bytes --] diff --git a/lisp/wid-edit.el b/lisp/wid-edit.el index dc481d4d0a5..407309c3429 100644 --- a/lisp/wid-edit.el +++ b/lisp/wid-edit.el @@ -1263,42 +1263,40 @@ widget-move ARG may be negative to move backward. When the second optional argument is non-nil, nothing is shown in the echo area." - (let ((wrapped 0) - (number arg) - (old (widget-tabable-at))) - ;; Forward. - (while (> arg 0) - (cond ((eobp) - (goto-char (point-min)) - (setq wrapped (1+ wrapped))) - (widget-use-overlay-change - (goto-char (next-overlay-change (point)))) - (t - (forward-char 1))) - (and (= wrapped 2) - (eq arg number) - (error "No buttons or fields found")) - (let ((new (widget-tabable-at))) - (when new - (unless (eq new old) - (setq arg (1- arg)) - (setq old new))))) - ;; Backward. - (while (< arg 0) - (cond ((bobp) - (goto-char (point-max)) - (setq wrapped (1+ wrapped))) - (widget-use-overlay-change - (goto-char (previous-overlay-change (point)))) - (t - (backward-char 1))) - (and (= wrapped 2) - (eq arg number) - (error "No buttons or fields found")) - (let ((new (widget-tabable-at))) - (when new - (unless (eq new old) - (setq arg (1+ arg)))))) + (let* ((wrapped 0) + (number arg) + (fwd (> arg 0)) ; widget-forward is caller. + (bwd (< arg 0)) ; widget-backward is caller. + (old (widget-tabable-at)) + (tabable (if old 1 0)) + pos) + (catch 'one + (while (> (abs arg) 0) + (cond ((or (and fwd (eobp)) (and bwd (bobp))) + (goto-char (cond (fwd (point-min)) + (bwd (point-max)))) + (setq wrapped (1+ wrapped))) + (widget-use-overlay-change + (goto-char (cond (fwd (next-overlay-change (point))) + (bwd (previous-overlay-change (point)))))) + (t + (cond (fwd (forward-char 1)) + (bwd (backward-char 1))))) + (and (= wrapped 2) + (eq arg number) + (if (= tabable 1) + (progn + (goto-char pos) + (throw 'one (message "Only one tabable widget"))) + (error "No buttons or fields found"))) + (let ((new (widget-tabable-at))) + (when new + (if (eq new old) + (setq pos (point)) + (cl-incf tabable) + (setq arg (cond (fwd (1- arg)) + (bwd (1+ arg)))) + (setq old new)))))) (let ((new (widget-tabable-at))) (while (and (eq (widget-tabable-at) new) (not (bobp))) (backward-char))) [-- Attachment #5: Type: text/plain, Size: 14 bytes --] Steve Berman ^ permalink raw reply related [flat|nested] 17+ messages in thread
* Re: Start of Emacs 30 release cycle 2024-06-24 13:49 ` Stephen Berman @ 2024-06-24 15:05 ` Eli Zaretskii 2024-06-25 10:41 ` Stephen Berman 0 siblings, 1 reply; 17+ messages in thread From: Eli Zaretskii @ 2024-06-24 15:05 UTC (permalink / raw) To: Stephen Berman; +Cc: maurooaranda, emacs-devel > From: Stephen Berman <stephen.berman@gmx.net> > Cc: maurooaranda@gmail.com, emacs-devel@gnu.org > Date: Mon, 24 Jun 2024 15:49:24 +0200 > > > Given the efforts it took me to get any responses to repeated pings in > > discussing those bugs, it would be justified for me to say NO. > > In case you've forgotten, I responded numerous times, including finding > shortcomings in previous patches of mine and correcting them (and in > another case (bug#69941) even withdrawing my patch as unsuitable). I didn't forget. > > of the two bugs still doesn't have a consensus about what to install, > > AFAIU.) But I'm willing to give people one more chance. I think it'd > > also be good to see the patches themselves, since we've seen them so > > long ago. > > Here's the patch for bug#69942: Thanks, but I thought there was a documentation addition to it? > And here's the patch for bug#70594: This one is okay for the emacs-30 branch. ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Start of Emacs 30 release cycle 2024-06-24 15:05 ` Eli Zaretskii @ 2024-06-25 10:41 ` Stephen Berman 2024-06-25 13:48 ` Eli Zaretskii 2024-06-25 14:10 ` Robert Pluim 0 siblings, 2 replies; 17+ messages in thread From: Stephen Berman @ 2024-06-25 10:41 UTC (permalink / raw) To: Eli Zaretskii; +Cc: maurooaranda, emacs-devel [-- Attachment #1: Type: text/plain, Size: 592 bytes --] On Mon, 24 Jun 2024 18:05:32 +0300 Eli Zaretskii <eliz@gnu.org> wrote: >> From: Stephen Berman <stephen.berman@gmx.net> >> Cc: maurooaranda@gmail.com, emacs-devel@gnu.org >> Date: Mon, 24 Jun 2024 15:49:24 +0200 [...] >> >> Here's the patch for bug#69942: > > Thanks, but I thought there was a documentation addition to it? Yes, indeed. Is the attached complete patch ready to install in emacs-30? >> And here's the patch for bug#70594: > > This one is okay for the emacs-30 branch. Thanks, I pushed it in commit 2f18929319a and I'll close the bug. Steve Berman [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #2: patch for bug#69942 --] [-- Type: text/x-patch, Size: 6649 bytes --] diff --git a/doc/misc/widget.texi b/doc/misc/widget.texi index 2e378e86fc7..8769d9c6191 100644 --- a/doc/misc/widget.texi +++ b/doc/misc/widget.texi @@ -3287,6 +3287,16 @@ Customization Face used for inactive widgets. @end deffn +@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 + @defopt widget-mouse-face Face used for highlighting a button when the mouse pointer moves across it. diff --git a/etc/NEWS b/etc/NEWS index d8fa92eb71e..841eb7c9c35 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -1906,6 +1906,12 @@ options of GNU 'ls'. ** Widget +++ +*** New face 'widget-unselected'. +Customize this face to a non-default value to visually distinguish the +labels of unselected active radio-button or checkbox widgets from the +labels of unselected inactive widgets (the default value inherits +'widget-inactive' face). + *** New user option 'widget-skip-inactive'. If non-nil, moving point forward or backward between widgets by typing 'TAB' or 'S-TAB' skips over inactive widgets. The default value is nil. diff --git a/lisp/wid-edit.el b/lisp/wid-edit.el index 3b467434d29..c86e82f5852 100644 --- a/lisp/wid-edit.el +++ b/lisp/wid-edit.el @@ -568,6 +568,29 @@ widget-specify-active (delete-overlay inactive) (widget-put widget :inactive nil)))) +(defface widget-unselected + '((t :inherit widget-inactive)) + "Face used for unselected widgets." + :group 'widget-faces + :version "30.1") + +(defun widget-specify-unselected (widget from to) + "Fontify WIDGET as unselected (not chosen)." + (let ((overlay (make-overlay from to nil t nil))) + (overlay-put overlay 'face 'widget-unselected) + (overlay-put overlay 'evaporate t) + ;; The overlay priority here should be lower than the priority in + ;; `widget-specify-active' (bug#69942). + (overlay-put overlay 'priority 90) + (widget-put widget :unselected overlay))) + +(defun widget-specify-selected (widget) + "Remove fontification of WIDGET as unselected (not chosen)." + (let ((unselected (widget-get widget :unselected))) + (when unselected + (delete-overlay unselected) + (widget-put widget :unselected nil)))) + ;;; Widget Properties. (defsubst widget-type (widget) @@ -2452,10 +2475,16 @@ 'checkbox (defun widget-checkbox-action (widget &optional event) "Toggle checkbox, notify parent, and set active state of sibling." (widget-toggle-action widget event) - (let ((sibling (widget-get-sibling widget))) + (let* ((sibling (widget-get-sibling widget)) + (from (widget-get sibling :from)) + (to (widget-get sibling :to))) (when sibling - (widget-apply sibling - (if (widget-value widget) :activate :deactivate)) + (if (widget-value widget) + (progn + (widget-apply sibling :activate) + (widget-specify-selected sibling)) + :deactivate + (widget-specify-unselected sibling from to)) (widget-clear-undo)))) ;;; The `checklist' Widget. @@ -2511,15 +2540,18 @@ widget-checklist-add-item ((eq escape ?v) (setq child (cond ((not chosen) - (let ((child (widget-create-child widget type))) - (widget-apply child :deactivate) + (let* ((child (widget-create-child widget type)) + (from (widget-get child :from)) + (to (widget-get child :to))) + (widget-specify-unselected child from to) child)) ((widget-inline-p type t) (widget-create-child-value widget type (cdr chosen))) (t (widget-create-child-value - widget type (car (cdr chosen))))))) + widget type (car (cdr chosen))) + (widget-specify-selected child))))) (t (error "Unknown escape `%c'" escape))))) ;; Update properties. @@ -2690,8 +2722,11 @@ widget-radio-add-item (widget-create-child-value widget type value) (widget-create-child widget type))) - (unless chosen - (widget-apply child :deactivate))) + (if chosen + (widget-specify-selected child) + (let ((from (widget-get child :from)) + (to (widget-get child :to))) + (widget-specify-unselected child from to)))) (t (error "Unknown escape `%c'" escape))))) ;; Update properties. @@ -2741,14 +2776,17 @@ widget-radio-value-set (dolist (current (widget-get widget :children)) (let* ((button (widget-get current :button)) (match (and (not found) - (widget-apply current :match value)))) + (widget-apply current :match value))) + (from (widget-get current :from)) + (to (widget-get current :to))) (widget-value-set button match) (if match - (progn - (widget-value-set current value) - (widget-apply current :activate)) - (widget-apply current :deactivate)) - (setq found (or found match)))))) + (progn + (widget-value-set current value) + (widget-apply current :activate) + (widget-specify-selected current)) + (widget-specify-unselected current from to)) + (setq found (or found match)))))) (defun widget-radio-validate (widget) ;; Valid if we have made a valid choice. @@ -2768,13 +2806,16 @@ widget-radio-action (let ((buttons (widget-get widget :buttons))) (when (memq child buttons) (dolist (current (widget-get widget :children)) - (let* ((button (widget-get current :button))) + (let* ((button (widget-get current :button)) + (from (widget-get current :from)) + (to (widget-get current :to))) (cond ((eq child button) (widget-value-set button t) - (widget-apply current :activate)) + (widget-apply current :activate) + (widget-specify-selected current)) ((widget-value button) (widget-value-set button nil) - (widget-apply current :deactivate))))))) + (widget-specify-unselected current from to))))))) ;; Pass notification to parent. (widget-apply widget :notify child event)) ^ permalink raw reply related [flat|nested] 17+ messages in thread
* Re: Start of Emacs 30 release cycle 2024-06-25 10:41 ` Stephen Berman @ 2024-06-25 13:48 ` Eli Zaretskii 2024-06-26 6:45 ` Stephen Berman 2024-06-25 14:10 ` Robert Pluim 1 sibling, 1 reply; 17+ messages in thread From: Eli Zaretskii @ 2024-06-25 13:48 UTC (permalink / raw) To: Stephen Berman; +Cc: maurooaranda, emacs-devel > From: Stephen Berman <stephen.berman@gmx.net> > Cc: maurooaranda@gmail.com, emacs-devel@gnu.org > Date: Tue, 25 Jun 2024 12:41:02 +0200 > > On Mon, 24 Jun 2024 18:05:32 +0300 Eli Zaretskii <eliz@gnu.org> wrote: > > >> From: Stephen Berman <stephen.berman@gmx.net> > >> Cc: maurooaranda@gmail.com, emacs-devel@gnu.org > >> Date: Mon, 24 Jun 2024 15:49:24 +0200 > [...] > >> > >> Here's the patch for bug#69942: > > > > Thanks, but I thought there was a documentation addition to it? > > Yes, indeed. Is the attached complete patch ready to install in > emacs-30? Yes, thanks. ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Start of Emacs 30 release cycle 2024-06-25 13:48 ` Eli Zaretskii @ 2024-06-26 6:45 ` Stephen Berman 0 siblings, 0 replies; 17+ messages in thread From: Stephen Berman @ 2024-06-26 6:45 UTC (permalink / raw) To: Eli Zaretskii; +Cc: maurooaranda, emacs-devel On Tue, 25 Jun 2024 16:48:47 +0300 Eli Zaretskii <eliz@gnu.org> wrote: >> From: Stephen Berman <stephen.berman@gmx.net> >> Cc: maurooaranda@gmail.com, emacs-devel@gnu.org >> Date: Tue, 25 Jun 2024 12:41:02 +0200 >> >> On Mon, 24 Jun 2024 18:05:32 +0300 Eli Zaretskii <eliz@gnu.org> wrote: >> >> >> From: Stephen Berman <stephen.berman@gmx.net> >> >> Cc: maurooaranda@gmail.com, emacs-devel@gnu.org >> >> Date: Mon, 24 Jun 2024 15:49:24 +0200 >> [...] >> >> >> >> Here's the patch for bug#69942: >> > >> > Thanks, but I thought there was a documentation addition to it? >> >> Yes, indeed. Is the attached complete patch ready to install in >> emacs-30? > > Yes, thanks. Done (with the doc changes suggested by Robert Pluim) in commit 8d354925ddb and I'll close the bug. Steve Berman ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Start of Emacs 30 release cycle 2024-06-25 10:41 ` Stephen Berman 2024-06-25 13:48 ` Eli Zaretskii @ 2024-06-25 14:10 ` Robert Pluim 2024-06-25 14:48 ` Stephen Berman 1 sibling, 1 reply; 17+ messages in thread From: Robert Pluim @ 2024-06-25 14:10 UTC (permalink / raw) To: Stephen Berman; +Cc: Eli Zaretskii, maurooaranda, emacs-devel >>>>> On Tue, 25 Jun 2024 12:41:02 +0200, Stephen Berman <stephen.berman@gmx.net> said: Stephen> Yes, indeed. Is the attached complete patch ready to install in Stephen> emacs-30? Minor comments below (although globally Iʼd say youʼre overriding the .dir-locals.el setting for `indent-tabs-mode', which is why the diffs look funny) Stephen> diff --git a/doc/misc/widget.texi b/doc/misc/widget.texi Stephen> index 2e378e86fc7..8769d9c6191 100644 Stephen> --- a/doc/misc/widget.texi Stephen> +++ b/doc/misc/widget.texi Stephen> @@ -3287,6 +3287,16 @@ Customization Stephen> Face used for inactive widgets. Stephen> @end deffn Stephen> +@deffn Face widget-unselected Stephen> +Face used for unselected widgets. This face is also used on the text Stephen> +labels of radio-button and checkbox widgets. Stephen> + Stephen> +The default value inherits @code{widget-inactive} face. If you want to 'inherits from the' Stephen> +visually distinguish the labels of unselected active radio-button or Stephen> +checkbox widgets from the labels of unselected inactive widgets, Stephen> +customize this face to a non-default value. Stephen> +@end deffn Stephen> + Stephen> @defopt widget-mouse-face Stephen> Face used for highlighting a button when the mouse pointer moves Stephen> across it. Stephen> diff --git a/etc/NEWS b/etc/NEWS Stephen> index d8fa92eb71e..841eb7c9c35 100644 Stephen> --- a/etc/NEWS Stephen> +++ b/etc/NEWS Stephen> @@ -1906,6 +1906,12 @@ options of GNU 'ls'. Stephen> ** Widget Stephen> +++ Stephen> +*** New face 'widget-unselected'. Stephen> +Customize this face to a non-default value to visually distinguish the Stephen> +labels of unselected active radio-button or checkbox widgets from the Stephen> +labels of unselected inactive widgets (the default value inherits 'inherits from the' Stephen> +'widget-inactive' face). Stephen> + Stephen> *** New user option 'widget-skip-inactive'. Stephen> If non-nil, moving point forward or backward between widgets by typing Stephen> 'TAB' or 'S-TAB' skips over inactive widgets. The default value is nil. Stephen> diff --git a/lisp/wid-edit.el b/lisp/wid-edit.el Stephen> index 3b467434d29..c86e82f5852 100644 Stephen> --- a/lisp/wid-edit.el Stephen> +++ b/lisp/wid-edit.el Stephen> @@ -568,6 +568,29 @@ widget-specify-active Stephen> (delete-overlay inactive) Stephen> (widget-put widget :inactive nil)))) Stephen> +(defface widget-unselected Stephen> + '((t :inherit widget-inactive)) Stephen> + "Face used for unselected widgets." Stephen> + :group 'widget-faces Stephen> + :version "30.1") Stephen> + Stephen> +(defun widget-specify-unselected (widget from to) Stephen> + "Fontify WIDGET as unselected (not chosen)." I think the "(not chosen)" bit is redundant. Stephen> + (let ((overlay (make-overlay from to nil t nil))) Stephen> + (overlay-put overlay 'face 'widget-unselected) Stephen> + (overlay-put overlay 'evaporate t) Stephen> + ;; The overlay priority here should be lower than the priority in Stephen> + ;; `widget-specify-active' (bug#69942). Stephen> + (overlay-put overlay 'priority 90) Stephen> + (widget-put widget :unselected overlay))) Stephen> + Stephen> +(defun widget-specify-selected (widget) Stephen> + "Remove fontification of WIDGET as unselected (not chosen)." And here as well. Robert -- ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Start of Emacs 30 release cycle 2024-06-25 14:10 ` Robert Pluim @ 2024-06-25 14:48 ` Stephen Berman 2024-06-25 15:09 ` Robert Pluim 0 siblings, 1 reply; 17+ messages in thread From: Stephen Berman @ 2024-06-25 14:48 UTC (permalink / raw) To: Robert Pluim; +Cc: Eli Zaretskii, maurooaranda, emacs-devel On Tue, 25 Jun 2024 16:10:30 +0200 Robert Pluim <rpluim@gmail.com> wrote: >>>>>> On Tue, 25 Jun 2024 12:41:02 +0200, Stephen Berman > <stephen.berman@gmx.net> said: > Stephen> Yes, indeed. Is the attached complete patch ready to install in > Stephen> emacs-30? > > Minor comments below (although globally Iʼd say youʼre overriding the > .dir-locals.el setting for `indent-tabs-mode', which is why the diffs > look funny) I haven't changed indent-tabs-mode: its global value is the default t but in buffers under emacs/lisp nil. And the diffs don't look funny to me; how do they look funny to you? > Stephen> +The default value inherits @code{widget-inactive} face. > > 'inherits from the' > Stephen> +labels of unselected inactive widgets (the default value inherits > > 'inherits from the' > Stephen> +(defun widget-specify-unselected (widget from to) > Stephen> + "Fontify WIDGET as unselected (not chosen)." > > I think the "(not chosen)" bit is redundant. > > Stephen> +(defun widget-specify-selected (widget) > Stephen> + "Remove fontification of WIDGET as unselected (not chosen)." > > And here as well. Ok, I'll make those changes. Thanks. Steve Berman ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Start of Emacs 30 release cycle 2024-06-25 14:48 ` Stephen Berman @ 2024-06-25 15:09 ` Robert Pluim 2024-06-25 15:57 ` Eli Zaretskii 0 siblings, 1 reply; 17+ messages in thread From: Robert Pluim @ 2024-06-25 15:09 UTC (permalink / raw) To: Stephen Berman; +Cc: Eli Zaretskii, maurooaranda, emacs-devel >>>>> On Tue, 25 Jun 2024 16:48:43 +0200, Stephen Berman <stephen.berman@gmx.net> said: Stephen> On Tue, 25 Jun 2024 16:10:30 +0200 Robert Pluim <rpluim@gmail.com> wrote: >>>>>>> On Tue, 25 Jun 2024 12:41:02 +0200, Stephen Berman >> <stephen.berman@gmx.net> said: Stephen> Yes, indeed. Is the attached complete patch ready to install in Stephen> emacs-30? >> >> Minor comments below (although globally Iʼd say youʼre overriding the >> .dir-locals.el setting for `indent-tabs-mode', which is why the diffs >> look funny) Stephen> I haven't changed indent-tabs-mode: its global value is the default t Stephen> but in buffers under emacs/lisp nil. And the diffs don't look funny to Stephen> me; how do they look funny to you? eg this hunk: (defsubst widget-type (widget) @@ -2452,10 +2475,16 @@ 'checkbox (defun widget-checkbox-action (widget &optional event) "Toggle checkbox, notify parent, and set active state of sibling." (widget-toggle-action widget event) - (let ((sibling (widget-get-sibling widget))) + (let* ((sibling (widget-get-sibling widget)) + (from (widget-get sibling :from)) + (to (widget-get sibling :to))) Thereʼs a tab on the line for 'to', but the line for 'from' uses spaces. Robert -- ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Start of Emacs 30 release cycle 2024-06-25 15:09 ` Robert Pluim @ 2024-06-25 15:57 ` Eli Zaretskii 2024-06-26 6:53 ` Stephen Berman 0 siblings, 1 reply; 17+ messages in thread From: Eli Zaretskii @ 2024-06-25 15:57 UTC (permalink / raw) To: Robert Pluim; +Cc: stephen.berman, maurooaranda, emacs-devel > From: Robert Pluim <rpluim@gmail.com> > Cc: Eli Zaretskii <eliz@gnu.org>, maurooaranda@gmail.com, emacs-devel@gnu.org > Date: Tue, 25 Jun 2024 17:09:48 +0200 > > Stephen> I haven't changed indent-tabs-mode: its global value is the default t > Stephen> but in buffers under emacs/lisp nil. And the diffs don't look funny to > Stephen> me; how do they look funny to you? > > eg this hunk: > > (defsubst widget-type (widget) > @@ -2452,10 +2475,16 @@ 'checkbox > (defun widget-checkbox-action (widget &optional event) > "Toggle checkbox, notify parent, and set active state of sibling." > (widget-toggle-action widget event) > - (let ((sibling (widget-get-sibling widget))) > + (let* ((sibling (widget-get-sibling widget)) > + (from (widget-get sibling :from)) > + (to (widget-get sibling :to))) > > Thereʼs a tab on the line for 'to', but the line for 'from' uses spaces. The original .dir-locals.el also has TABs. ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Start of Emacs 30 release cycle 2024-06-25 15:57 ` Eli Zaretskii @ 2024-06-26 6:53 ` Stephen Berman 2024-06-26 9:27 ` Robert Pluim 0 siblings, 1 reply; 17+ messages in thread From: Stephen Berman @ 2024-06-26 6:53 UTC (permalink / raw) To: Eli Zaretskii; +Cc: Robert Pluim, maurooaranda, emacs-devel On Tue, 25 Jun 2024 18:57:33 +0300 Eli Zaretskii <eliz@gnu.org> wrote: >> From: Robert Pluim <rpluim@gmail.com> >> Cc: Eli Zaretskii <eliz@gnu.org>, maurooaranda@gmail.com, emacs-devel@gnu.org >> Date: Tue, 25 Jun 2024 17:09:48 +0200 >> >> Stephen> I haven't changed indent-tabs-mode: its global value is the default t >> Stephen> but in buffers under emacs/lisp nil. And the diffs don't look >> Stephen> funny to >> Stephen> me; how do they look funny to you? >> >> eg this hunk: >> >> (defsubst widget-type (widget) >> @@ -2452,10 +2475,16 @@ 'checkbox >> (defun widget-checkbox-action (widget &optional event) >> "Toggle checkbox, notify parent, and set active state of sibling." >> (widget-toggle-action widget event) >> - (let ((sibling (widget-get-sibling widget))) >> + (let* ((sibling (widget-get-sibling widget)) >> + (from (widget-get sibling :from)) >> + (to (widget-get sibling :to))) >> >> Thereʼs a tab on the line for 'to', but the line for 'from' uses spaces. Ah, right. I see things like that when I give the diff a close look, but since the faces of whitespace-mode, though enabled, are not visible in diff-mode (is this intended?), I often don't notice it. > The original .dir-locals.el also has TABs. And wid-edit.el is replete with tabs and spaces, so if I unintentionally added a tab or two (but using only default settings for emacs-lisp-mode), I don't think it significantly worsens the situation. Steve Berman ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Start of Emacs 30 release cycle 2024-06-26 6:53 ` Stephen Berman @ 2024-06-26 9:27 ` Robert Pluim 0 siblings, 0 replies; 17+ messages in thread From: Robert Pluim @ 2024-06-26 9:27 UTC (permalink / raw) To: Stephen Berman; +Cc: Eli Zaretskii, maurooaranda, emacs-devel >>>>> On Wed, 26 Jun 2024 08:53:52 +0200, Stephen Berman <stephen.berman@gmx.net> said: >>> Thereʼs a tab on the line for 'to', but the line for 'from' uses spaces. Stephen> Ah, right. I see things like that when I give the diff a close look, Stephen> but since the faces of whitespace-mode, though enabled, are not visible Stephen> in diff-mode (is this intended?), I often don't notice it. Yes, it can be hard to spot. The indentation difference is what I notices. >> The original .dir-locals.el also has TABs. Stephen> And wid-edit.el is replete with tabs and spaces, so if I unintentionally Stephen> added a tab or two (but using only default settings for Stephen> emacs-lisp-mode), I don't think it significantly worsens the situation. Right. And we definitely do not want "letʼs change all the tabs to spaces" patches Robert -- ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: nxml comments fix (was: Start of Emacs 30 release cycle) 2024-06-23 13:44 Start of Emacs 30 release cycle Eli Zaretskii 2024-06-24 8:32 ` Stephen Berman @ 2024-07-01 13:15 ` Konstantin Kharlamov 2024-07-01 13:41 ` Eli Zaretskii 1 sibling, 1 reply; 17+ messages in thread From: Konstantin Kharlamov @ 2024-07-01 13:15 UTC (permalink / raw) To: Eli Zaretskii, emacs-devel On Sun, 2024-06-23 at 16:44 +0300, Eli Zaretskii wrote: > I hope to make the first pretest of Emacs 30.1 in about a month from > now. Hello! As it's soon the pretest time, I'd just like to point out a simple nxml-mode bugfix that would be nice to have in Emacs 30 https://debbugs.gnu.org/cgi/bugreport.cgi?bug=71772 (the 1-st patch out of the two). ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: nxml comments fix (was: Start of Emacs 30 release cycle) 2024-07-01 13:15 ` nxml comments fix (was: Start of Emacs 30 release cycle) Konstantin Kharlamov @ 2024-07-01 13:41 ` Eli Zaretskii 2024-07-01 14:00 ` Konstantin Kharlamov 0 siblings, 1 reply; 17+ messages in thread From: Eli Zaretskii @ 2024-07-01 13:41 UTC (permalink / raw) To: Konstantin Kharlamov; +Cc: emacs-devel > From: Konstantin Kharlamov <Hi-Angel@yandex.ru> > Date: Mon, 01 Jul 2024 16:15:57 +0300 > > On Sun, 2024-06-23 at 16:44 +0300, Eli Zaretskii wrote: > > I hope to make the first pretest of Emacs 30.1 in about a month from > > now. > > Hello! As it's soon the pretest time, I'd just like to point out a > simple nxml-mode bugfix that would be nice to have in Emacs 30 > https://debbugs.gnu.org/cgi/bugreport.cgi?bug=71772 (the 1-st patch out > of the two). Thanks, but there's no reason to cross-post bugs here. All the relevant people read the bug list all the time, so your bug report was noticed and will not be forgotten. ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: nxml comments fix (was: Start of Emacs 30 release cycle) 2024-07-01 13:41 ` Eli Zaretskii @ 2024-07-01 14:00 ` Konstantin Kharlamov 0 siblings, 0 replies; 17+ messages in thread From: Konstantin Kharlamov @ 2024-07-01 14:00 UTC (permalink / raw) To: Eli Zaretskii; +Cc: emacs-devel On Mon, 2024-07-01 at 16:41 +0300, Eli Zaretskii wrote: > > From: Konstantin Kharlamov <Hi-Angel@yandex.ru> > > Date: Mon, 01 Jul 2024 16:15:57 +0300 > > > > On Sun, 2024-06-23 at 16:44 +0300, Eli Zaretskii wrote: > > > I hope to make the first pretest of Emacs 30.1 in about a month > > > from > > > now. > > > > Hello! As it's soon the pretest time, I'd just like to point out a > > simple nxml-mode bugfix that would be nice to have in Emacs 30 > > https://debbugs.gnu.org/cgi/bugreport.cgi?bug=71772 (the 1-st patch > > out > > of the two). > > Thanks, but there's no reason to cross-post bugs here. All the > relevant people read the bug list all the time, so your bug report > was > noticed and will not be forgotten. Oh, okay, sorry about that ^ permalink raw reply [flat|nested] 17+ messages in thread
end of thread, other threads:[~2024-07-01 14:00 UTC | newest] Thread overview: 17+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2024-06-23 13:44 Start of Emacs 30 release cycle Eli Zaretskii 2024-06-24 8:32 ` Stephen Berman 2024-06-24 12:47 ` Eli Zaretskii 2024-06-24 13:49 ` Stephen Berman 2024-06-24 15:05 ` Eli Zaretskii 2024-06-25 10:41 ` Stephen Berman 2024-06-25 13:48 ` Eli Zaretskii 2024-06-26 6:45 ` Stephen Berman 2024-06-25 14:10 ` Robert Pluim 2024-06-25 14:48 ` Stephen Berman 2024-06-25 15:09 ` Robert Pluim 2024-06-25 15:57 ` Eli Zaretskii 2024-06-26 6:53 ` Stephen Berman 2024-06-26 9:27 ` Robert Pluim 2024-07-01 13:15 ` nxml comments fix (was: Start of Emacs 30 release cycle) Konstantin Kharlamov 2024-07-01 13:41 ` Eli Zaretskii 2024-07-01 14:00 ` Konstantin Kharlamov
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).