summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMauro Aranda <maurooaranda@gmail.com>2020-11-01 10:10:08 -0300
committerMauro Aranda <maurooaranda@gmail.com>2020-11-01 10:10:08 -0300
commitecec9a259b13d88fa23dde078fba99ae78ef79c7 (patch)
treeee58c55fe73a76522193a7681c36d465effc12f7
parent43a1b79f56cb1ac6530e8b41f3c329890a00a8f6 (diff)
downloademacs-ecec9a259b13d88fa23dde078fba99ae78ef79c7.tar.gz
Fix saving a face setting with Customize
* lisp/cus-edit.el (custom-face-save): Make sure we back up into the :shown-value property what the user has edited so far, if we are going to recreate the custom-face widget. (Bug#44331)
-rw-r--r--lisp/cus-edit.el5
1 files changed, 5 insertions, 0 deletions
diff --git a/lisp/cus-edit.el b/lisp/cus-edit.el
index 769a69a50f2..3eef4468394 100644
--- a/lisp/cus-edit.el
+++ b/lisp/cus-edit.el
@@ -3931,7 +3931,12 @@ Optional EVENT is the location for the menu."
(custom-face-mark-to-save widget)
;; The user is working on only a selected terminal type;
;; make sure we save the entire spec to `custom-file'. (Bug #40866)
+ ;; If recreating a widget that may have been edited by the user, remember
+ ;; to always save the edited value into the :shown-value property, so
+ ;; we use that value for the recreated widget. (Bug#44331)
+ (widget-put widget :shown-value (custom-face-widget-to-spec widget))
(custom-face-edit-all widget)
+ (widget-put widget :shown-value nil) ; Reset it after we used it.
(custom-face-mark-to-save widget)
(if (eq form 'selected)
(custom-face-edit-selected widget)