mu4e-view: restore point in single-window headers buffer

In single-window mode, after quitting the view, explicitly restore the
point in the headers view to the last viewed message (just like in split
view mode).
This commit is contained in:
Dirk-Jan C. Binnema 2023-06-25 11:07:45 +03:00
parent 1494df4a48
commit 958c153b87
1 changed files with 11 additions and 6 deletions

View File

@ -872,12 +872,17 @@ This is useful for advising some Gnus-functionality that does not work in mu4e."
(ignore-errors ;; try, don't error out.
(kill-buffer-and-window))
;; single-window case
(when mu4e-linked-headers-buffer ;; re-use mu4e-view-detach?
(with-current-buffer mu4e-linked-headers-buffer
(when (eq (selected-window) mu4e~headers-view-win)
(setq mu4e~headers-view-win nil)))
(setq mu4e-linked-headers-buffer nil)
(kill-buffer))))
(let ((docid (mu4e-field-at-point :docid)))
(when mu4e-linked-headers-buffer ;; re-use mu4e-view-detach?
(with-current-buffer mu4e-linked-headers-buffer
(when (eq (selected-window) mu4e~headers-view-win)
(setq mu4e~headers-view-win nil)))
(setq mu4e-linked-headers-buffer nil)
(kill-buffer)
;; attempt to move point to just-viewed message.
(when docid
(ignore-errors
(mu4e~headers-goto-docid docid)))))))
(defvar mu4e-view-mode-map
(let ((map (make-keymap)))