diff --git a/modules/emacs/eshell/autoload/eshell.el b/modules/emacs/eshell/autoload/eshell.el index def80ad7b..d2415a6d6 100644 --- a/modules/emacs/eshell/autoload/eshell.el +++ b/modules/emacs/eshell/autoload/eshell.el @@ -259,16 +259,17 @@ delete." "Close window (or workspace) on quit." (let ((buf (current-buffer))) (when (+eshell--remove-buffer buf) - (+eshell--setup-window (get-buffer-window buf) nil) - (cond ((and (one-window-p) - (window-configuration-p (frame-parameter nil 'saved-wconf))) - (set-window-configuration (frame-parameter nil 'saved-wconf)) - (set-frame-parameter nil 'saved-wconf nil)) - ((one-window-p) - (let ((prev (save-window-excursion (previous-buffer)))) - (unless (and prev (doom-real-buffer-p prev)) - (switch-to-buffer (doom-fallback-buffer))))) - ((or (and (fboundp '+popup-window-p) (+popup-window-p)) - +eshell-kill-window-on-exit) - (delete-window)))))) + (when-let* ((win (get-buffer-window buf))) + (+eshell--setup-window win nil) + (cond ((and (one-window-p t) + (window-configuration-p (frame-parameter nil 'saved-wconf))) + (set-window-configuration (frame-parameter nil 'saved-wconf)) + (set-frame-parameter win 'saved-wconf nil)) + ((one-window-p) + (let ((prev (save-window-excursion (previous-buffer)))) + (unless (and prev (doom-real-buffer-p prev)) + (switch-to-buffer (doom-fallback-buffer))))) + ((or (and (fboundp '+popup-window-p) (+popup-window-p)) + +eshell-kill-window-on-exit) + (delete-window win)))))))