From ddb7bf12d190ddb00cfff306c62f258a9db7b07d Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sat, 12 Dec 2015 01:28:24 -0500 Subject: [PATCH] Bury other windows in narf/kill-real-buffer --- core/lib/defuns-buffers.el | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/core/lib/defuns-buffers.el b/core/lib/defuns-buffers.el index cdca92280..d914ef5a2 100644 --- a/core/lib/defuns-buffers.el +++ b/core/lib/defuns-buffers.el @@ -82,7 +82,14 @@ Inspired from http://demonastery.org/2013/04/emacs-evil-narrow-region/" (let ((bname (buffer-name))) (cond ((string-match-p "^\\*scratch\\*" bname) (erase-buffer)) - (t (kill-this-buffer)))) + (t ;; bury duplicate buffers in other windows + (let ((this-window (get-buffer-window))) + (mapc (lambda (w) + (unless (eq this-window w) + (with-selected-window w (narf/previous-real-buffer)))) + (get-buffer-window-list (current-buffer) nil nil))) + ;; Then kill + (kill-this-buffer)))) (if (narf/popup-p (current-buffer)) (narf/popup-close) (unless (narf/real-buffer-p (current-buffer))