From e40a58c423bc6b351a6b8d063c5e6eef53e95dd4 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sun, 26 Aug 2018 14:12:50 +0200 Subject: [PATCH] Optimize +workspace-new & workspace creation This is much faster than the old method of switching to the persp to modify them. --- modules/feature/workspaces/autoload/workspaces.el | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/modules/feature/workspaces/autoload/workspaces.el b/modules/feature/workspaces/autoload/workspaces.el index 45d722491..9d7d4a0d9 100644 --- a/modules/feature/workspaces/autoload/workspaces.el +++ b/modules/feature/workspaces/autoload/workspaces.el @@ -155,7 +155,13 @@ Otherwise return t on success, nil otherwise." (error "Can't create a new '%s' workspace" name)) (when (+workspace-exists-p name) (error "A workspace named '%s' already exists" name)) - (persp-add-new name)) + (let ((persp (persp-add-new name)) + (+popup--inhibit-transient t)) + (save-window-excursion + (delete-other-windows) + (switch-to-buffer (doom-fallback-buffer)) + (setf (persp-window-conf persp) + (funcall persp-window-state-get-function (selected-frame)))))) ;;;###autoload (defun +workspace-rename (name new-name) @@ -342,8 +348,6 @@ workspace, otherwise the new workspace is blank." (clone-p (persp-copy name t)) (t (+workspace-switch name t) - (persp-delete-other-windows) - (switch-to-buffer (doom-fallback-buffer)) (+workspace/display))) ((debug error) (+workspace-error (cadr e) t))))