summaryrefslogtreecommitdiff
path: root/lisp/server.el
diff options
context:
space:
mode:
authorEli Zaretskii <eliz@gnu.org>2018-03-10 13:48:49 +0200
committerEli Zaretskii <eliz@gnu.org>2018-03-10 13:48:49 +0200
commita8be860e17e2a737bda7a4c5075b71f0fb627a92 (patch)
tree3e972e54fd96c0f671778d56a304ab6352182c04 /lisp/server.el
parentbbf53d99b57bd3d7fc0427d378df2efc6fa10e00 (diff)
downloademacs-a8be860e17e2a737bda7a4c5075b71f0fb627a92.tar.gz
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/server.el')
-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
:group 'server
:type 'hook)
+(defcustom server-after-make-frame-hook nil
+ "Hook run when the Emacs server creates a client frame.
+The created frame is selected when the hook is called."
+ :group 'server
+ :type 'hook
+ :version "27.1")
+
(defcustom server-done-hook nil
"Hook run when done editing a buffer for the Emacs server."
:group 'server
@@ -1336,9 +1343,11 @@ The following commands are accepted by the client:
((or isearch-mode (minibufferp))
nil)
((and frame (null buffers))
+ (run-hooks 'server-after-make-frame-hook)
(message "%s" (substitute-command-keys
"When done with this frame, type \\[delete-frame]")))
((not (null buffers))
+ (run-hooks 'server-after-make-frame-hook)
(server-switch-buffer (car buffers) nil (cdr (car files)))
(run-hooks 'server-switch-hook)
(unless nowait