From 4a6de2419c81d120ce363a2ba189789c7a2424d4 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sat, 29 Jan 2022 19:40:20 +0100 Subject: [PATCH] fix: run switch-buffer hooks on server-visit-hook window-buffer-change-function does not trigger on the first buffer displayed in a new client frame. Fix: #6058 --- core/core-ui.el | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/core/core-ui.el b/core/core-ui.el index 8e7e6c1cc..a121c3606 100644 --- a/core/core-ui.el +++ b/core/core-ui.el @@ -590,22 +590,21 @@ windows, switch to `doom-fallback-buffer'. Otherwise, delegate to original ;;; Bootstrap (defun doom-init-ui-h (&optional _) - "Initialize Doom's user interface by applying all its advice and hooks." + "Initialize Doom's user interface by applying all its advice and hooks. + +These should be done as late as possible, as to avoid/minimize prematurely +triggering hooks during startup." (doom-run-hooks 'doom-init-ui-hook) (add-hook 'kill-buffer-query-functions #'doom-protect-fallback-buffer-h) (add-hook 'after-change-major-mode-hook #'doom-highlight-non-default-indentation-h 'append) - ;; Initialize custom switch-{buffer,window,frame} hooks: - ;; - ;; - `doom-switch-buffer-hook' - ;; - `doom-switch-window-hook' - ;; - `doom-switch-frame-hook' - ;; - ;; These should be done as late as possible, as not to prematurely trigger - ;; hooks during startup. - (add-hook 'window-buffer-change-functions #'doom-run-switch-buffer-hooks-h) + ;; Initialize `doom-switch-window-hook' and `doom-switch-frame-hook' (add-hook 'window-selection-change-functions #'doom-run-switch-window-or-frame-hooks-h) + ;; Initialize `doom-switch-buffer-hook' + (add-hook 'window-buffer-change-functions #'doom-run-switch-buffer-hooks-h) + ;; `window-buffer-change-functions' doesn't trigger for files visited via the server. + (add-hook 'server-visit-hook #'doom-run-switch-buffer-hooks-h) ;; Only execute this function once. (remove-hook 'window-buffer-change-functions #'doom-init-ui-h))