* make the 'window management' (killing windows etc.) a bit less aggressive

This commit is contained in:
djcb
2012-06-11 12:03:37 +03:00
parent 3c72b336f4
commit cb9b2095a6
4 changed files with 62 additions and 42 deletions

View File

@ -625,8 +625,14 @@ FUNC (if non-nil) afterwards."
(setq
mu4e-update-timer nil
mu4e~maildir-list nil))
(mu4e~proc-kill)
(kill-buffer))
(mu4e~proc-kill)
;; kill all main/view/headers buffer
(mapcar
(lambda (buf)
(with-current-buffer buf
(when (member major-mode '(mu4e-headers-mode mu4e-view-mode mu4e-main-mode))
(kill-buffer))))
(buffer-list)))
(defvar mu4e-update-timer nil
@ -790,5 +796,33 @@ is ignored."
(when img
(newline)
(insert-image img imgpath nil t))))
(defun mu4e-quit-buffer ()
"Bury the current buffer (and delete all windows displaying it)."
(interactive)
(walk-windows
;; kill any window that:
;; a) displays the current buffer
;; b) is not the only win
(lambda (win)
(when (eq (window-buffer win) (current-buffer))
(unless (one-window-p t)
(delete-window win)))) nil t))
(defun mu4e-hide-other-mu4e-buffers ()
"Bury mu4e-buffers (main, headers, view) (and delete all windows
displaying it). Do _not_ bury the current buffer, though."
(interactive)
(let ((curbuf (current-buffer)))
(walk-windows
(lambda (win)
(with-current-buffer (window-buffer win)
(unless (eq curbuf (current-buffer))
(when (member major-mode '(mu4e-headers-mode mu4e-view-mode mu4e-main-mode))
(unless (one-window-p t)
(delete-window win)))))) nil t)))
(provide 'mu4e-utils)