From 9632b8c09d4e29de47a862b4ac3cc68c9f36b445 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sat, 30 Dec 2017 01:19:56 -0500 Subject: [PATCH] Flip default kill flag in quit-window #309 --- core/autoload/popups.el | 2 +- core/core-popups.el | 2 +- core/core-ui.el | 6 ++++++ 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/core/autoload/popups.el b/core/autoload/popups.el index f4d2b6cd9..c903a964b 100644 --- a/core/autoload/popups.el +++ b/core/autoload/popups.el @@ -239,7 +239,7 @@ without leaving any trace behind (muahaha)." (if (featurep 'evil) #'evil-force-normal-state #'keyboard-quit)) - (delete-window))) + (quit-restore-window nil 'kill))) ;;;###autoload (defun doom/popup-this-buffer () diff --git a/core/core-popups.el b/core/core-popups.el index 6cabc5152..3219fe7f6 100644 --- a/core/core-popups.el +++ b/core/core-popups.el @@ -180,7 +180,7 @@ recognized by DOOM's popup system. They are: (define-key map [escape] #'doom/popup-close-maybe) (define-key map (kbd "ESC") #'doom/popup-close-maybe) (define-key map [remap quit-window] #'doom/popup-close-maybe) - (define-key map [remap doom/kill-this-buffer] #'delete-window) + (define-key map [remap doom/kill-this-buffer] #'doom/popup-close-maybe) (define-key map [remap split-window-right] #'ignore) (define-key map [remap split-window-below] #'ignore) (define-key map [remap split-window-horizontally] #'ignore) diff --git a/core/core-ui.el b/core/core-ui.el index ada667f29..708e71c4e 100644 --- a/core/core-ui.el +++ b/core/core-ui.el @@ -235,6 +235,12 @@ instead)." (get-buffer-window-list nil nil t)))) (add-hook 'kill-buffer-query-functions #'doom|protect-visible-buffers) +;; temporary windows often have q bound to `quit-window', which only buries the +;; contained buffer. I rarely don't want that buffer killed, so... +(defun doom*quit-window (orig-fn &optional kill window) + (funcall orig-fn (not kill) window)) +(advice-add #'quit-window :around #'doom*quit-window) + ;; ;; Plugins