X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=blobdiff_plain;f=emacs%2Fnotmuch-hello.el;h=81b26059ab1a01dfbfdd5d93bd2f1a385f219511;hp=ca3a3813a5dd31bb9cc3552fda4eb3a89eb00566;hb=59adb2da193efef806b37e2c85981024a39ee2e3;hpb=9928b5b50f44d66d02f422d1f6b6a1bca72a4580 diff --git a/emacs/notmuch-hello.el b/emacs/notmuch-hello.el index ca3a3813..81b26059 100644 --- a/emacs/notmuch-hello.el +++ b/emacs/notmuch-hello.el @@ -403,11 +403,16 @@ Complete list of currently available key bindings: (progn (widget-forward 1) (widget-value (widget-at))) - (error nil))))) + (error nil)))) + (inhibit-read-only t)) - (kill-all-local-variables) - (let ((inhibit-read-only t)) - (erase-buffer)) + ;; Delete all editable widget fields. Editable widget fields are + ;; tracked in a buffer local variable `widget-field-list' (and + ;; others). If we do `erase-buffer' without properly deleting the + ;; widgets, some widget-related functions are confused later. + (mapc 'widget-delete widget-field-list) + + (erase-buffer) (unless (eq major-mode 'notmuch-hello-mode) (notmuch-hello-mode))