diff options
| author | Karoly Lorentey | 2004-04-19 14:21:37 +0000 |
|---|---|---|
| committer | Karoly Lorentey | 2004-04-19 14:21:37 +0000 |
| commit | de93c7914c81714c745cc60c16b56c3aa82ed01e (patch) | |
| tree | 6470a8be1b0c85c8a71d3393c89618bbc1dd249d | |
| parent | 6ed9e43af1ab2e8929bbdf30b31af0c6e774b619 (diff) | |
| download | emacs-de93c7914c81714c745cc60c16b56c3aa82ed01e.tar.gz emacs-de93c7914c81714c745cc60c16b56c3aa82ed01e.zip | |
Fix one more case of the previous error.
lisp/server.el (server-delete-client): Added noframe parameter.
(server-handle-delete-frame): Use it.
git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-149
| -rw-r--r-- | lisp/server.el | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/lisp/server.el b/lisp/server.el index 4eb5c421f4f..7d90beb02cf 100644 --- a/lisp/server.el +++ b/lisp/server.el | |||
| @@ -207,8 +207,10 @@ New clients have no properties." | |||
| 207 | (setq server-clients (cons (cons proc nil) | 207 | (setq server-clients (cons (cons proc nil) |
| 208 | server-clients)))) | 208 | server-clients)))) |
| 209 | 209 | ||
| 210 | (defun server-delete-client (client) | 210 | (defun server-delete-client (client &optional noframe) |
| 211 | "Delete CLIENT, including its buffers, displays and frames." | 211 | "Delete CLIENT, including its buffers, displays and frames. |
| 212 | If NOFRAME is non-nil, let the frames live. (To be used from | ||
| 213 | `delete-frame-functions'." | ||
| 212 | ;; Force a new lookup of client (prevents infinite recursion). | 214 | ;; Force a new lookup of client (prevents infinite recursion). |
| 213 | (setq client (server-client | 215 | (setq client (server-client |
| 214 | (if (listp client) (car client) client))) | 216 | (if (listp client) (car client) client))) |
| @@ -235,10 +237,11 @@ New clients have no properties." | |||
| 235 | (delete-tty tty))) | 237 | (delete-tty tty))) |
| 236 | 238 | ||
| 237 | ;; Delete the client's frames. | 239 | ;; Delete the client's frames. |
| 238 | (dolist (frame (frame-list)) | 240 | (unless noframe |
| 239 | (if (and (frame-live-p frame) | 241 | (dolist (frame (frame-list)) |
| 240 | (equal (car client) (frame-parameter frame 'client))) | 242 | (if (and (frame-live-p frame) |
| 241 | (delete-frame frame))) | 243 | (equal (car client) (frame-parameter frame 'client))) |
| 244 | (delete-frame frame)))) | ||
| 242 | 245 | ||
| 243 | ;; Delete the client's process. | 246 | ;; Delete the client's process. |
| 244 | (if (eq (process-status (car client)) 'open) | 247 | (if (eq (process-status (car client)) 'open) |
| @@ -285,7 +288,7 @@ New clients have no properties." | |||
| 285 | ;; (Closing a terminal frame must not trigger a delete; | 288 | ;; (Closing a terminal frame must not trigger a delete; |
| 286 | ;; we must wait for delete-tty-after-functions.) | 289 | ;; we must wait for delete-tty-after-functions.) |
| 287 | (server-log (format "server-handle-delete-frame, frame %s" frame) proc) | 290 | (server-log (format "server-handle-delete-frame, frame %s" frame) proc) |
| 288 | (server-delete-client proc)))) | 291 | (server-delete-client proc 'noframe)))) ; Let delete-frame delete the frame later. |
| 289 | 292 | ||
| 290 | (defun server-handle-suspend-tty (tty) | 293 | (defun server-handle-suspend-tty (tty) |
| 291 | "Notify the emacsclient process to suspend itself when its tty device is suspended." | 294 | "Notify the emacsclient process to suspend itself when its tty device is suspended." |