diff options
author | Robert Pluim <rpluim@gmail.com> | 2020-07-21 16:37:59 +0200 |
---|---|---|
committer | Robert Pluim <rpluim@gmail.com> | 2020-07-21 16:37:59 +0200 |
commit | 4db3235fd8a99f20de414372524948982b23d1fc (patch) | |
tree | 797cf5a27edf77b06c35571017633e1131b66b7b | |
parent | 3c9c3f04dec596da22aadefaafa4e6ff3687aa4d (diff) | |
download | emacs-4db3235fd8a99f20de414372524948982b23d1fc.tar.gz |
Run custom-magic-reset in the customize buffer
If the user has navigated away from the customize buffer, then
clicking on a widget in the customize buffer applies changes in the
selected buffer rather than in the customize buffer. Pass the
customize buffer to 'custom-magic-reset' to avoid this.
* lisp/cus-edit.el (custom-magic-reset): Add optional buffer argument,
apply changes in that buffer.
(custom-notify): Pass the buffer containing the widget to
'custom-magic-reset'. (Bug#40788)
-rw-r--r-- | lisp/cus-edit.el | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/lisp/cus-edit.el b/lisp/cus-edit.el index d3d17fda7ad..490d9055ecf 100644 --- a/lisp/cus-edit.el +++ b/lisp/cus-edit.el @@ -2102,11 +2102,12 @@ and `face'." (insert " ")) (widget-put widget :children children)))) -(defun custom-magic-reset (widget) +(defun custom-magic-reset (widget &optional buffer) "Redraw the :custom-magic property of WIDGET." (let ((magic (widget-get widget :custom-magic))) (when magic - (widget-value-set magic (widget-value magic))))) + (with-current-buffer (or buffer (current-buffer)) + (widget-value-set magic (widget-value magic)))))) ;;; The `custom' Widget. @@ -2217,7 +2218,7 @@ and `face'." ;; commands like `M-u' (that work on a region in the buffer) ;; will upcase the wrong part of the buffer, since more text has ;; been inserted before point. - (run-with-idle-timer 0.0 nil #'custom-magic-reset widget) + (run-with-idle-timer 0.0 nil #'custom-magic-reset widget (current-buffer)) (apply 'widget-default-notify widget args)))) (defun custom-redraw (widget) |