From 958c153b87cfe9882c69e49b6fb55d96b7d6aa7f Mon Sep 17 00:00:00 2001 From: "Dirk-Jan C. Binnema" Date: Sun, 25 Jun 2023 11:07:45 +0300 Subject: [PATCH] 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). --- mu4e/mu4e-view.el | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/mu4e/mu4e-view.el b/mu4e/mu4e-view.el index 133fdf7f..468eb7df 100644 --- a/mu4e/mu4e-view.el +++ b/mu4e/mu4e-view.el @@ -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)))