feature/workspace: fix frames incorrectly initialized via emacsclient

A new workspace is now correctly created for files opened via
emacsclient. This fixes #119. Again.
This commit is contained in:
Henrik Lissner 2018-01-31 01:13:56 -05:00
parent 9d82318d27
commit 81bba9c0bc
No known key found for this signature in database
GPG key ID: 5F6C0EA160557395
2 changed files with 7 additions and 7 deletions

View file

@ -445,11 +445,13 @@ the next."
;; ;;
;;;###autoload ;;;###autoload
(defun +workspaces|delete-associated-workspace (frame) (defun +workspaces|delete-associated-workspace (&optional frame)
"Delete workspace associated with current frame. "Delete workspace associated with current frame.
A workspace gets associated with a frame when a new frame is interactively A workspace gets associated with a frame when a new frame is interactively
created." created."
(when persp-mode (when persp-mode
(unless frame
(setq frame (selected-frame)))
(let ((frame-persp (frame-parameter frame 'workspace))) (let ((frame-persp (frame-parameter frame 'workspace)))
(when (string= frame-persp (+workspace-current-name)) (when (string= frame-persp (+workspace-current-name))
(+workspace/delete frame-persp))))) (+workspace/delete frame-persp)))))
@ -470,9 +472,9 @@ created."
(with-selected-frame frame (with-selected-frame frame
(if (not (persp-frame-list-without-daemon)) (if (not (persp-frame-list-without-daemon))
(+workspace-switch +workspaces-main t) (+workspace-switch +workspaces-main t)
(+workspace/new) (+workspace-switch (format "#%s" (+workspace--generate-id)) t)
(set-frame-parameter frame 'workspace (+workspace-current-name))) (set-frame-parameter frame 'workspace (+workspace-current-name)))
(+workspace/display)))) (run-at-time 0.1 nil #'+workspace/display))))
(defvar +workspaces--project-dir nil) (defvar +workspaces--project-dir nil)
;;;###autoload ;;;###autoload

View file

@ -65,9 +65,6 @@ renamed.")
persp-set-last-persp-for-new-frames t persp-set-last-persp-for-new-frames t
persp-switch-to-added-buffer nil persp-switch-to-added-buffer nil
persp-remove-buffers-from-nil-persp-behaviour nil persp-remove-buffers-from-nil-persp-behaviour nil
;; Don't restore winconf on new frames
persp-init-frame-behaviour t
persp-init-new-frame-behaviour-override 'auto-temp
;; Don't auto-load on startup ;; Don't auto-load on startup
persp-auto-resume-time -1 persp-auto-resume-time -1
;; auto-save on kill ;; auto-save on kill
@ -83,7 +80,8 @@ renamed.")
(add-hook 'doom-cleanup-hook #'+workspaces|cleanup-unassociated-buffers) (add-hook 'doom-cleanup-hook #'+workspaces|cleanup-unassociated-buffers)
;; per-frame workspaces ;; per-frame workspaces
(setq persp-init-new-frame-behaviour-override nil (setq persp-init-frame-behaviour t
persp-init-new-frame-behaviour-override nil
persp-interactive-init-frame-behaviour-override #'+workspaces|associate-frame persp-interactive-init-frame-behaviour-override #'+workspaces|associate-frame
persp-emacsclient-init-frame-behaviour-override #'+workspaces|associate-frame) persp-emacsclient-init-frame-behaviour-override #'+workspaces|associate-frame)
;; delete frame associated with workspace, if it exists ;; delete frame associated with workspace, if it exists