feature/workspaces: fix buffer getting killed across workspaces

This commit is contained in:
Henrik Lissner 2018-03-12 13:33:50 -04:00
parent b082ba6460
commit a17fc86761
No known key found for this signature in database
GPG key ID: 5F6C0EA160557395
2 changed files with 8 additions and 0 deletions

View file

@ -453,6 +453,12 @@ the next."
;; Hooks
;;
;;;###autoload
(defun +workspaces|protect-buffers-in-other-persps ()
"Return nil if this buffer is present in other perspectives/workspaces (bury
it, don't kill it)."
(not (persp-other-persps-with-buffer-except-nil (current-buffer))))
;;;###autoload
(defun +workspaces|delete-associated-workspace (&optional frame)
"Delete workspace associated with current frame.

View file

@ -114,6 +114,7 @@ Uses `+workspaces-main' to determine the name of the main workspace."
;; kill-buffer-query-functions
(remove-hook 'kill-buffer-query-functions 'persp-kill-buffer-query-function)
(add-hook 'kill-buffer-query-functions 'persp-kill-buffer-query-function t)
(add-hook 'kill-buffer-query-functions #'+workspaces|protect-buffers-in-other-persps)
;; Remap `buffer-list' to current workspace's buffers in
;; `doom-buffer-list'
@ -121,6 +122,7 @@ Uses `+workspaces-main' to determine the name of the main workspace."
(advice-add #'display-buffer :after #'+workspaces*auto-add-buffer)
(advice-add #'doom-buffer-list :override #'+workspace-buffer-list))
(t
(remove-hook 'kill-buffer-query-functions #'+workspaces|protect-buffers-in-other-persps)
(advice-remove #'switch-to-buffer #'+workspaces*auto-add-buffer)
(advice-remove #'display-buffer #'+workspaces*auto-add-buffer)
(advice-remove #'doom-buffer-list #'+workspace-buffer-list))))