Reworked how frame-restore works

This commit is contained in:
Benson Chu 2023-07-20 16:54:14 -05:00
parent 4d3f958834
commit 3f97a86ae6

View file

@ -34,18 +34,22 @@
(not (string= "F1" (frame-parameter frame 'name))))))
(visible-frame-list)))
(defvar fr/working-state nil)
;; Upon emacs startup, we have a valid working state
(defvar fr/working-state t)
(defvar fr/startup t)
(defun fr/give-up-working-state ()
(interactive)
(setq fr/working-state t))
(fr/give-up-working-state)
;; Whenever a new frame is created, and it's the first frame that's been
;; created, our working state has been wrecked.
(add-to-list 'server-after-make-frame-hook
(lambda (&rest _)
(if fr/startup
(setq fr/startup nil)
(when (<= (length (fr/non-tty-frames)) 1)
(setq fr/working-state nil))))
(setq fr/working-state nil)))))
(defun fr/save-if-appropriate (&rest _)
(interactive)