From f18e1c0ea16442efb84bc855344bc3f9eca08a56 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Mon, 4 Mar 2019 20:37:55 -0500 Subject: [PATCH] Refactor switch {buffer,window} hooks --- core/core-ui.el | 19 +++++++------------ core/test/test-core.el | 4 ++-- 2 files changed, 9 insertions(+), 14 deletions(-) diff --git a/core/core-ui.el b/core/core-ui.el index 416f51cd0..caec4a7ed 100644 --- a/core/core-ui.el +++ b/core/core-ui.el @@ -93,33 +93,28 @@ Do not set this directly.") (defun doom*switch-window-hooks (orig-fn window &optional norecord) (if (or doom-inhibit-switch-window-hooks - (null window) + norecord (eq window (selected-window)) - (window-minibuffer-p) (window-minibuffer-p window)) (funcall orig-fn window norecord) (let ((doom-inhibit-switch-window-hooks t)) (run-hooks 'doom-exit-window-hook) (prog1 (funcall orig-fn window norecord) - (with-selected-window window - (run-hooks 'doom-enter-window-hook)))))) + (run-hooks 'doom-enter-window-hook))))) (defun doom*switch-buffer-hooks (orig-fn buffer-or-name &rest args) (if (or doom-inhibit-switch-buffer-hooks + (null buffer-or-name) + (if (eq orig-fn 'switch-to-buffer) (car args)) + (if (eq orig-fn 'pop-to-buffer) (nth 1 args)) (eq (get-buffer buffer-or-name) (current-buffer))) (apply orig-fn buffer-or-name args) (let ((doom-inhibit-switch-buffer-hooks t)) (run-hooks 'doom-exit-buffer-hook) (prog1 (apply orig-fn buffer-or-name args) - (when (buffer-live-p (get-buffer buffer-or-name)) - (with-current-buffer buffer-or-name - (run-hooks 'doom-enter-buffer-hook))))))) + (run-hooks 'doom-enter-buffer-hook))))) -(defun doom|init-switch-hooks (&optional disable) - "Set up enter/exit hooks for windows and buffers. - -See `doom-enter-buffer-hook', `doom-enter-window-hook', `doom-exit-buffer-hook' -and `doom-exit-window-hook'." +(defun doom-init-switch-hooks (&optional disable) (dolist (spec '((select-window . doom*switch-window-hooks) (switch-to-buffer . doom*switch-buffer-hooks) (display-buffer . doom*switch-buffer-hooks) diff --git a/core/test/test-core.el b/core/test/test-core.el index 068d9ff7f..ec920105e 100644 --- a/core/test/test-core.el +++ b/core/test/test-core.el @@ -63,9 +63,9 @@ b (get-buffer-create "b")) (spy-on 'before-hook) (spy-on 'after-hook) - (doom|init-switch-hooks)) + (doom-init-switch-hooks)) (after-each - (doom|init-switch-hooks 'disable) + (doom-init-switch-hooks 'disable) (kill-buffer a) (kill-buffer b))