diff --git a/mu4e/mu4e-view.el b/mu4e/mu4e-view.el index d0b338cb..72dcf566 100644 --- a/mu4e/mu4e-view.el +++ b/mu4e/mu4e-view.el @@ -311,27 +311,26 @@ marking if it still had that." (buf (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))))) + (get-buffer-create mu4e~view-buffer-name)))) (with-current-buffer buf + (unless (eq major-mode 'mu4e-view-mode) + (mu4e-view-mode)) + (setq mu4e~view-msg msg) (switch-to-buffer buf) ;; 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))) + (let ((inhibit-read-only t)) (erase-buffer) (mu4e~delete-all-overlays) (insert (mu4e-view-message-text msg)) (goto-char (point-min)) (mu4e~fontify-cited) (mu4e~fontify-signature) + (mu4e~view-make-urls-clickable) (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)))))) + (when embedded (local-set-key "q" 'kill-buffer-and-window))))))) (defun mu4e~view-get-property-from-event (prop) "Get the property PROP at point, or the location of the mouse.