diff options
| author | Dirk-Jan C. Binnema <djcb@djcbsoftware.nl> | 2020-08-09 17:06:32 +0300 |
|---|---|---|
| committer | Dirk-Jan C. Binnema <djcb@djcbsoftware.nl> | 2020-08-09 17:12:40 +0300 |
| commit | 0d6bf906fef25bbd32d55918c7551bd73734b291 (patch) | |
| tree | c55ea0c3c177d8a7256ebbc4b66fe827e0caa692 /mu4e/mu4e-view.el | |
| parent | 9d43c3c4bb6a437f942d994c8f4d6b5dd32e1fbf (diff) | |
mu4e: gnus-view: Make sure to clean up gnus mm buffers
After leaving a gnus-view buffer, we should clean up the the mm-*
buffers it creates; we were leaking those.
Fixes issue #1781
Diffstat (limited to 'mu4e/mu4e-view.el')
| -rw-r--r-- | mu4e/mu4e-view.el | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/mu4e/mu4e-view.el b/mu4e/mu4e-view.el index b8dd0ff..fb1d64d 100644 --- a/mu4e/mu4e-view.el +++ b/mu4e/mu4e-view.el @@ -370,6 +370,11 @@ article-mode." (when embedded (local-set-key "q" 'kill-buffer-and-window))) (switch-to-buffer buf)))) +;; remember the mime-handles, so we can clean them up when +;; we quit this buffer. +(defvar-local mu4e~gnus-article-mime-handles nil) +(put 'mu4e~gnus-article-mime-handles 'permanent-local t) + (setq mu4e~gnus-article-mime-handles gnus-article-mime-handles) (defun mu4e~view-gnus (msg) "View MSG using Gnus' article mode. Experimental." (require 'gnus-art) @@ -401,10 +406,16 @@ article-mode." (gnus-display-mime-function (mu4e~view-gnus-display-mime msg)) (gnus-icalendar-additional-identities (mu4e-personal-addresses))) (gnus-article-prepare-display)) + (setq mu4e~gnus-article-mime-handles gnus-article-mime-handles) (setq mu4e~view-message msg) (mu4e-view-mode) (setq gnus-article-decoded-p gnus-article-decode-hook) (set-buffer-modified-p nil) + (add-hook 'kill-buffer-hook + (lambda() ;; cleanup the mm-* buffers that the view spawns + (when mu4e~gnus-article-mime-handles + (mm-destroy-parts mu4e~gnus-article-mime-handles) + (setq mu4e~gnus-article-mime-handles nil)))) (read-only-mode))) (defun mu4e~view-gnus-display-mime (msg) |
