]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix saving a face setting with Customize
authorMauro Aranda <maurooaranda@gmail.com>
Sun, 1 Nov 2020 13:10:08 +0000 (10:10 -0300)
committerMauro Aranda <maurooaranda@gmail.com>
Sun, 1 Nov 2020 13:10:08 +0000 (10:10 -0300)
* 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)

lisp/cus-edit.el

index 769a69a50f283d6ddd9b041599a889b952247e7b..3eef44683945fd1b886dc429786f38b69911479e 100644 (file)
@@ -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)