Skip to content

Instantly share code, notes, and snippets.

@mpontus
Last active August 29, 2015 14:18
Show Gist options
  • Save mpontus/7e11e6f6d0de7835f082 to your computer and use it in GitHub Desktop.
Save mpontus/7e11e6f6d0de7835f082 to your computer and use it in GitHub Desktop.
(defun display-buffer-above-selected (buffer alist)
"Try displaying BUFFER in a window below the selected window.
This either splits the selected window or reuses the window below
the selected one."
(let (window)
(or (and (setq window (window-in-direction 'above))
(eq buffer (window-buffer window))
(window--display-buffer buffer window 'reuse alist))
(and (not (frame-parameter nil 'unsplittable))
(let ((split-height-threshold 0)
split-width-threshold)
(setq window
(prog1 (selected-window)
(window--try-to-split-window (selected-window) alist))))
(window--display-buffer
buffer window 'window alist display-buffer-mark-dedicated))
(and (setq window (window-in-direction 'below))
(not (window-dedicated-p window))
(window--display-buffer
buffer (prog1 (selected-window) (select-window window))
'reuse alist display-buffer-mark-dedicated)))))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment