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.
This commit is contained in:
Thierry Volpiatto
2017-11-04 05:50:03 +01:00
parent 43df94fa39
commit 70d4d56db5

View File

@ -312,14 +312,16 @@ marking if it still had that."
(if embedded (if embedded
(mu4e~view-embedded-winbuf) (mu4e~view-embedded-winbuf)
(get-buffer-create mu4e~view-buffer-name))) (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 (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 ;; When MSG is unread, mu4e~view-mark-as-read-maybe will trigger
;; another call to mu4e-view (via mu4e~headers-update-handler as ;; another call to mu4e-view (via mu4e~headers-update-handler as
;; the reply handler to mu4e~proc-move) ;; the reply handler to mu4e~proc-move)
(let ((inhibit-read-only t)) (let ((inhibit-read-only t))
(when insert-it (when (or embedded (not (mu4e~view-mark-as-read-maybe msg)))
(erase-buffer) (erase-buffer)
(mu4e~delete-all-overlays) (mu4e~delete-all-overlays)
(insert (mu4e-view-message-text msg)) (insert (mu4e-view-message-text msg))
@ -327,11 +329,10 @@ marking if it still had that."
(mu4e~fontify-cited) (mu4e~fontify-cited)
(mu4e~fontify-signature) (mu4e~fontify-signature)
(mu4e~view-show-images-maybe msg) (mu4e~view-show-images-maybe msg)
(when embedded (local-set-key "q" 'kill-buffer-and-window))) (mu4e~view-make-urls-clickable)
(unless (eq major-mode 'mu4e-view-mode) (when embedded (local-set-key "q" 'kill-buffer-and-window))
(mu4e-view-mode)) (unless mode-enabled (run-mode-hooks 'mu4e-view-mode-hook)))))
(setq mu4e~view-msg msg) (switch-to-buffer buf)))
(and insert-it (mu4e~view-make-urls-clickable))))))
(defun mu4e~view-get-property-from-event (prop) (defun mu4e~view-get-property-from-event (prop)
"Get the property PROP at point, or the location of the mouse. "Get the property PROP at point, or the location of the mouse.