From 70d4d56db5ecdd72ff88ebe0ce6d4683b4f8ae12 Mon Sep 17 00:00:00 2001 From: Thierry Volpiatto Date: Sat, 4 Nov 2017 05:50:03 +0100 Subject: [PATCH] Run mu4e-view-mode without its hook (#1141) before text insertion and run finally the hook at end. This ensure local variables are not killed after being set. * mu4e/mu4e-view.el (mu4e-view): Do it. --- mu4e/mu4e-view.el | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/mu4e/mu4e-view.el b/mu4e/mu4e-view.el index d0b338cb..8c53f1b3 100644 --- a/mu4e/mu4e-view.el +++ b/mu4e/mu4e-view.el @@ -312,14 +312,16 @@ marking if it still had that." (if embedded (mu4e~view-embedded-winbuf) (get-buffer-create mu4e~view-buffer-name))) - (insert-it (or embedded (not (mu4e~view-mark-as-read-maybe msg))))) + mode-enabled) (with-current-buffer buf - (switch-to-buffer buf) + (unless (setq mode-enabled (eq major-mode 'mu4e-view-mode)) + (let (mu4e-view-mode-hook) (mu4e-view-mode))) + (setq mu4e~view-msg msg) ;; When MSG is unread, mu4e~view-mark-as-read-maybe will trigger ;; another call to mu4e-view (via mu4e~headers-update-handler as ;; the reply handler to mu4e~proc-move) (let ((inhibit-read-only t)) - (when insert-it + (when (or embedded (not (mu4e~view-mark-as-read-maybe msg))) (erase-buffer) (mu4e~delete-all-overlays) (insert (mu4e-view-message-text msg)) @@ -327,11 +329,10 @@ marking if it still had that." (mu4e~fontify-cited) (mu4e~fontify-signature) (mu4e~view-show-images-maybe msg) - (when embedded (local-set-key "q" 'kill-buffer-and-window))) - (unless (eq major-mode 'mu4e-view-mode) - (mu4e-view-mode)) - (setq mu4e~view-msg msg) - (and insert-it (mu4e~view-make-urls-clickable)))))) + (mu4e~view-make-urls-clickable) + (when embedded (local-set-key "q" 'kill-buffer-and-window)) + (unless mode-enabled (run-mode-hooks 'mu4e-view-mode-hook))))) + (switch-to-buffer buf))) (defun mu4e~view-get-property-from-event (prop) "Get the property PROP at point, or the location of the mouse.