Fix #1525: selecting deleted buffer errors
...when killing Emacs or switching perspectives.
This commit is contained in:
parent
b2fd76cb49
commit
e32fd0c7e1
1 changed files with 6 additions and 5 deletions
|
@ -168,11 +168,12 @@ stored in `persp-save-dir'.")
|
||||||
|
|
||||||
(add-hook 'projectile-after-switch-project-hook #'+workspaces-switch-to-project-h)
|
(add-hook 'projectile-after-switch-project-hook #'+workspaces-switch-to-project-h)
|
||||||
|
|
||||||
;; In some scenarios, persp-mode throws error when Emacs tries to die,
|
(defun +workspaces--remove-dead-buffers (persp)
|
||||||
;; preventing its death and trapping us in Emacs.
|
"Fixes #1525. Remove dead buffers from PERSP's buffer list."
|
||||||
(defun +workspaces*ignore-errors-on-kill-emacs (orig-fn)
|
(when persp
|
||||||
(ignore-errors (funcall orig-fn)))
|
(setf (persp-buffers persp)
|
||||||
(advice-add #'persp-kill-emacs-h :around #'+workspaces*ignore-errors-on-kill-emacs)
|
(cl-remove-if-not #'buffer-live-p (persp-buffers persp)))))
|
||||||
|
(advice-add #'persp-buffers-to-savelist :before #'+workspaces--remove-dead-buffers)
|
||||||
|
|
||||||
;; Fix #1017: stop session persistence from restoring a broken posframe
|
;; Fix #1017: stop session persistence from restoring a broken posframe
|
||||||
(after! posframe
|
(after! posframe
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue