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:
parent
9d82318d27
commit
81bba9c0bc
2 changed files with 7 additions and 7 deletions
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue