summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Pluim <rpluim@gmail.com>2020-07-21 16:37:59 +0200
committerRobert Pluim <rpluim@gmail.com>2020-07-21 16:37:59 +0200
commit4db3235fd8a99f20de414372524948982b23d1fc (patch)
tree797cf5a27edf77b06c35571017633e1131b66b7b
parent3c9c3f04dec596da22aadefaafa4e6ff3687aa4d (diff)
downloademacs-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.el7
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)