summaryrefslogtreecommitdiff
path: root/lisp/frameset.el
diff options
context:
space:
mode:
authorEli Zaretskii <eliz@gnu.org>2026-02-01 08:49:57 +0200
committerEli Zaretskii <eliz@gnu.org>2026-02-01 08:49:57 +0200
commit967294d2cb4db828b514293f4b32d8ca7caadf39 (patch)
tree10af15b46f3e40b9d6346651a2314cdabda33d3e /lisp/frameset.el
parent87dfb040b08adf22cea41115adaa913997c04437 (diff)
Fix desktop saving and restoring in daemon sessions
* lisp/desktop.el (desktop--check-dont-save): Don't save daemon's initial frame. * lisp/frameset.el (frameset-restore): Don't try deleting the daemon's initial frame. (Bug#80294)
Diffstat (limited to 'lisp/frameset.el')
-rw-r--r--lisp/frameset.el15
1 files changed, 12 insertions, 3 deletions
diff --git a/lisp/frameset.el b/lisp/frameset.el
index 85a90f67c68..e11a1da7e9b 100644
--- a/lisp/frameset.el
+++ b/lisp/frameset.el
@@ -1362,9 +1362,18 @@ All keyword parameters default to nil."
;; Clean up the frame list
(when cleanup-frames
(let ((map nil)
- (cleanup (if (eq cleanup-frames t)
- (lambda (frame action)
- (when (memq action '(:rejected :ignored))
+ (cleanup
+ (if (eq cleanup-frames t)
+ (lambda (frame action)
+ (when (and (memq action '(:rejected :ignored))
+ ;; Don't try deleting the daemon's initial
+ ;; frame, as that would only trigger
+ ;; warnings.
+ (not
+ (and (daemonp)
+ (equal (terminal-name (frame-terminal
+ frame))
+ "initial_terminal"))))
(delete-frame frame)))
cleanup-frames)))
(maphash (lambda (frame _action) (push frame map)) frameset--action-map)