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
This commit is contained in:
@ -370,6 +370,11 @@ article-mode."
|
|||||||
(when embedded (local-set-key "q" 'kill-buffer-and-window)))
|
(when embedded (local-set-key "q" 'kill-buffer-and-window)))
|
||||||
(switch-to-buffer buf))))
|
(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)
|
(defun mu4e~view-gnus (msg)
|
||||||
"View MSG using Gnus' article mode. Experimental."
|
"View MSG using Gnus' article mode. Experimental."
|
||||||
(require 'gnus-art)
|
(require 'gnus-art)
|
||||||
@ -401,10 +406,16 @@ article-mode."
|
|||||||
(gnus-display-mime-function (mu4e~view-gnus-display-mime msg))
|
(gnus-display-mime-function (mu4e~view-gnus-display-mime msg))
|
||||||
(gnus-icalendar-additional-identities (mu4e-personal-addresses)))
|
(gnus-icalendar-additional-identities (mu4e-personal-addresses)))
|
||||||
(gnus-article-prepare-display))
|
(gnus-article-prepare-display))
|
||||||
|
(setq mu4e~gnus-article-mime-handles gnus-article-mime-handles)
|
||||||
(setq mu4e~view-message msg)
|
(setq mu4e~view-message msg)
|
||||||
(mu4e-view-mode)
|
(mu4e-view-mode)
|
||||||
(setq gnus-article-decoded-p gnus-article-decode-hook)
|
(setq gnus-article-decoded-p gnus-article-decode-hook)
|
||||||
(set-buffer-modified-p nil)
|
(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)))
|
(read-only-mode)))
|
||||||
|
|
||||||
(defun mu4e~view-gnus-display-mime (msg)
|
(defun mu4e~view-gnus-display-mime (msg)
|
||||||
|
|||||||
Reference in New Issue
Block a user