Allow a function as mu4e-split-view value
This allows to have a function returning a window as value of
`mu4e-split-view`. I'm using this patch since quite some time locally with the
following function.
```el
(defun th/mu4e-split-view ()
(let* ((headers (mu4e-get-headers-buffer))
(headers-win (and headers (get-buffer-window headers)))
(view (mu4e-get-view-buffer))
(view-win (and view (get-buffer-window view))))
(cond
;; There's a view window, just use it.
(view-win view-win)
;; Just one window, split sensibly, i.e., horizontally or
;; vertically depending on geometry.
((one-window-p) (split-window-sensibly))
;; Otherwise, use the tallest window.
(t (car (sort (delq headers-win (window-list))
(lambda (a b)
(> (window-height a) (window-height b)))))))))
(setq mu4e-split-view #'th/mu4e-split-view)
```
This commit is contained in:
@ -1269,16 +1269,16 @@ of `mu4e-split-view', and return a window for the message view."
|
||||
(kill-buffer (mu4e-get-view-buffer)))
|
||||
;; get a new view window
|
||||
(setq mu4e~headers-view-win
|
||||
(let* ((new-win-func
|
||||
(cond
|
||||
((eq mu4e-split-view 'horizontal) ;; split horizontally
|
||||
'(split-window-vertically mu4e-headers-visible-lines))
|
||||
((eq mu4e-split-view 'vertical) ;; split vertically
|
||||
'(split-window-horizontally mu4e-headers-visible-columns)))))
|
||||
(cond ((with-demoted-errors "Unable to split window: %S"
|
||||
(eval new-win-func)))
|
||||
(t ;; no splitting; just use the currently selected one
|
||||
(selected-window)))))))
|
||||
(with-demoted-errors "Unable to split window: %S"
|
||||
(cond
|
||||
((eq mu4e-split-view 'horizontal) ;; split horizontally
|
||||
(split-window-vertically mu4e-headers-visible-lines))
|
||||
((eq mu4e-split-view 'vertical) ;; split vertically
|
||||
(split-window-horizontally mu4e-headers-visible-columns))
|
||||
((functionp mu4e-split-view)
|
||||
(funcall mu4e-split-view))
|
||||
(t ;; no splitting; just use the currently selected one
|
||||
(selected-window)))))))
|
||||
|
||||
;;; Search-based marking
|
||||
|
||||
|
||||
Reference in New Issue
Block a user