aboutsummaryrefslogtreecommitdiffstats
path: root/lisp
diff options
context:
space:
mode:
authorEli Zaretskii2018-03-10 13:48:49 +0200
committerEli Zaretskii2018-03-10 13:48:49 +0200
commita8be860e17e2a737bda7a4c5075b71f0fb627a92 (patch)
tree3e972e54fd96c0f671778d56a304ab6352182c04 /lisp
parentbbf53d99b57bd3d7fc0427d378df2efc6fa10e00 (diff)
downloademacs-a8be860e17e2a737bda7a4c5075b71f0fb627a92.tar.gz
emacs-a8be860e17e2a737bda7a4c5075b71f0fb627a92.zip
Improve support for desktop restoration in daemon mode
* lisp/server.el (server-after-make-frame-hook): New hook. (server-execute): Call it after creating a new frame or before switching to a buffer shown in a client frame. (Bug#30421) * doc/emacs/misc.texi (Saving Emacs Sessions): Adjust advice for restoring desktop in daemon mode to the new hook. * doc/lispref/frames.texi (Creating Frames, Standard Hooks): Document server-after-make-frame-hook. * etc/NEWS: Mention server-after-make-frame-hook.
Diffstat (limited to 'lisp')
-rw-r--r--lisp/server.el9
1 files changed, 9 insertions, 0 deletions
diff --git a/lisp/server.el b/lisp/server.el
index a892203c24a..ff03cbe622c 100644
--- a/lisp/server.el
+++ b/lisp/server.el
@@ -188,6 +188,13 @@ space (this means characters from ! to ~; or from code 33 to
188 :group 'server 188 :group 'server
189 :type 'hook) 189 :type 'hook)
190 190
191(defcustom server-after-make-frame-hook nil
192 "Hook run when the Emacs server creates a client frame.
193The created frame is selected when the hook is called."
194 :group 'server
195 :type 'hook
196 :version "27.1")
197
191(defcustom server-done-hook nil 198(defcustom server-done-hook nil
192 "Hook run when done editing a buffer for the Emacs server." 199 "Hook run when done editing a buffer for the Emacs server."
193 :group 'server 200 :group 'server
@@ -1336,9 +1343,11 @@ The following commands are accepted by the client:
1336 ((or isearch-mode (minibufferp)) 1343 ((or isearch-mode (minibufferp))
1337 nil) 1344 nil)
1338 ((and frame (null buffers)) 1345 ((and frame (null buffers))
1346 (run-hooks 'server-after-make-frame-hook)
1339 (message "%s" (substitute-command-keys 1347 (message "%s" (substitute-command-keys
1340 "When done with this frame, type \\[delete-frame]"))) 1348 "When done with this frame, type \\[delete-frame]")))
1341 ((not (null buffers)) 1349 ((not (null buffers))
1350 (run-hooks 'server-after-make-frame-hook)
1342 (server-switch-buffer (car buffers) nil (cdr (car files))) 1351 (server-switch-buffer (car buffers) nil (cdr (car files)))
1343 (run-hooks 'server-switch-hook) 1352 (run-hooks 'server-switch-hook)
1344 (unless nowait 1353 (unless nowait