diff options
author | Eli Zaretskii <eliz@gnu.org> | 2018-03-10 13:48:49 +0200 |
---|---|---|
committer | Eli Zaretskii <eliz@gnu.org> | 2018-03-10 13:48:49 +0200 |
commit | a8be860e17e2a737bda7a4c5075b71f0fb627a92 (patch) | |
tree | 3e972e54fd96c0f671778d56a304ab6352182c04 /lisp/server.el | |
parent | bbf53d99b57bd3d7fc0427d378df2efc6fa10e00 (diff) | |
download | emacs-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.el | 9 |
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 |