* mu4e-view: select the headers window after quiting, if it's available

This commit is contained in:
djcb
2012-06-15 11:09:27 +03:00
parent 28583c4a9d
commit 6c854e4a25

View File

@ -1033,12 +1033,12 @@ ensure we don't disturb other windows."
(unless (eq major-mode 'mu4e-view-mode) (unless (eq major-mode 'mu4e-view-mode)
(error "Must be in mu4e-view-mode (%S)" major-mode)) (error "Must be in mu4e-view-mode (%S)" major-mode))
(let ((curbuf (current-buffer)) (curwin (selected-window)) (let ((curbuf (current-buffer)) (curwin (selected-window))
(headers-visible)) (headers-win))
(walk-windows (walk-windows
(lambda (win) (lambda (win)
;; check whether the headers buffer window is visible ;; check whether the headers buffer window is visible
(when (eq mu4e~view-headers-buffer (window-buffer win)) (when (eq mu4e~view-headers-buffer (window-buffer win))
(setq headers-visible t)) (setq headers-win win))
;; and kill any _other_ (non-selected) window that shows the current ;; and kill any _other_ (non-selected) window that shows the current
;; buffer ;; buffer
(when (when
@ -1050,13 +1050,16 @@ ensure we don't disturb other windows."
;; now, all *other* windows should be gone. ;; now, all *other* windows should be gone.
;; if the headers view is also visible, kill ourselves + window; otherwise ;; if the headers view is also visible, kill ourselves + window; otherwise
;; switch to the headers view ;; switch to the headers view
(if headers-visible (when (window-live-p headers-win)
(kill-buffer-and-window) ;; headers are visible
(progn
(kill-buffer-and-window) ;; kill the view win
(select-window headers-win)) ;; and switch to the headers win...
;; headers are not visible... ;; headers are not visible...
(kill-buffer) (progn
(when (buffer-live-p mu4e~view-headers-buffer) (kill-buffer)
(switch-to-buffer mu4e~view-headers-buffer))))) (when (buffer-live-p mu4e~view-headers-buffer)
(switch-to-buffer mu4e~view-headers-buffer))))))
(provide 'mu4e-view) (provide 'mu4e-view)
;; end of mu4e-view ;; end of mu4e-view