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