Fix #1525: selecting deleted buffer errors

...when killing Emacs or switching perspectives.
This commit is contained in:
Henrik Lissner 2019-08-15 21:01:36 -04:00
parent b2fd76cb49
commit e32fd0c7e1
No known key found for this signature in database
GPG key ID: 5F6C0EA160557395

View file

@ -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