diff --git a/modules/feature/workspaces/autoload/workspaces.el b/modules/feature/workspaces/autoload/workspaces.el index 410789703..0b2adabaa 100644 --- a/modules/feature/workspaces/autoload/workspaces.el +++ b/modules/feature/workspaces/autoload/workspaces.el @@ -332,18 +332,16 @@ workspace, otherwise the new workspace is blank." (interactive "iP") (unless name (setq name (format "#%s" (+workspace--generate-id)))) - (condition-case-unless-debug ex - (if (+workspace-exists-p name) - (error "%s already exists" name) - (+workspace-switch name t) - (if clone-p - (let ((persp (+workspace-get name))) - (dolist (window (window-list)) - (persp-add-buffer (window-buffer window) persp nil))) - (delete-other-windows-internal) - (switch-to-buffer (doom-fallback-buffer))) - (+workspace/display)) - ('error (+workspace-error (cadr ex) t)))) + (condition-case e + (cond ((+workspace-exists-p name) + (error "%s already exists" name)) + (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)))) ;;;###autoload (defun +workspace/switch-to (index)