aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgcv <gepardcv@gmail.com>2020-02-24 12:12:32 -0800
committerGitHub <noreply@github.com>2020-02-24 12:12:32 -0800
commit9e376db287d058e3eee236f738cc33c4226e1020 (patch)
tree4aa81b55c28b49d71741efba28818730aa8f661a
parentf28a38fc358aa457dfd2f2d10004d708405ee668 (diff)
parent070afe091d4aab9889dc184333c15162686ee3b9 (diff)
Merge pull request #122 from nex3/cv/fix-frame-delete-cleanup
Add a cleanup hook for frame deletion.
-rw-r--r--perspective.el8
1 files changed, 8 insertions, 0 deletions
diff --git a/perspective.el b/perspective.el
index e32dc47..a6c4388 100644
--- a/perspective.el
+++ b/perspective.el
@@ -913,6 +913,7 @@ named collections of buffers and window configurations."
(ad-activate 'recursive-edit)
(ad-activate 'exit-recursive-edit)
(add-hook 'after-make-frame-functions 'persp-init-frame)
+ (add-hook 'delete-frame-functions 'persp-delete-frame)
(add-hook 'ido-make-buffer-list-hook 'persp-set-ido-buffers)
(setq read-buffer-function 'persp-read-buffer)
(mapc 'persp-init-frame (frame-list))
@@ -920,6 +921,7 @@ named collections of buffers and window configurations."
(run-hooks 'persp-mode-hook))
(ad-deactivate-regexp "^persp-.*")
+ (remove-hook 'delete-frame-functions 'persp-delete-frame)
(remove-hook 'after-make-frame-functions 'persp-init-frame)
(remove-hook 'ido-make-buffer-list-hook 'persp-set-ido-buffers)
(setq read-buffer-function nil)
@@ -957,6 +959,12 @@ By default, this uses the current frame."
:window-configuration (current-window-configuration)
:point-marker (point-marker)))))
+(defun persp-delete-frame (frame)
+ "Clean up perspectives in FRAME.
+By default this uses the current frame."
+ (with-selected-frame frame
+ (mapcar #'persp-kill (persp-names))))
+
(defun persp-make-variable-persp-local (variable)
"Make VARIABLE become perspective-local.
This means that whenever a new perspective is switched into, the