From a04e57f88710c3ca5a4a63c55cd59d7d46413320 Mon Sep 17 00:00:00 2001 From: Jim Myhrberg Date: Tue, 21 Jul 2020 18:23:27 +0100 Subject: [PATCH] fix(workspaces): Recent persp now works after renaming persps --- modules/workspaces/siren-persp-mode.el | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/modules/workspaces/siren-persp-mode.el b/modules/workspaces/siren-persp-mode.el index 425a586..eaf2a30 100644 --- a/modules/workspaces/siren-persp-mode.el +++ b/modules/workspaces/siren-persp-mode.el @@ -113,11 +113,20 @@ ;; Perform safetly clean-up of recent list. (dolist (persp-name recent-list) (when (not (member persp-name perspectives)) - (message "WARNING: perspective %s in recent list does not exist.") + (message "WARNING: perspective %s in recent list does not exist." + persp-name) (setq recent-list (delete persp-name recent-list)))) (set-frame-parameter frame 'persp-recent-persps recent-list))) + (defun siren-persp-renamed-hook (persp old-name new-name) + (let* ((frame (selected-frame)) + (recent-list (frame-parameter frame 'persp-recent-persps)) + (index (cl-position old-name recent-list))) + (when index + (setcar (nthcdr index recent-list) new-name) + (set-frame-parameter frame 'persp-recent-persps recent-list)))) + (defun siren-persp-mode-switch-to-most-recent () "Switch to the most recently active persp." (interactive) @@ -175,6 +184,7 @@ (add-hook 'persp-before-kill-functions 'siren-persp-before-kill-hook) (add-hook 'persp-activated-functions 'siren-persp-activated-hook) + (add-hook 'persp-renamed-functions 'siren-persp-renamed-hook) (add-hook 'persp-activated-functions 'siren-persp-mode-show-current-perspective-name))