aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKaroly Lorentey2004-04-19 14:21:37 +0000
committerKaroly Lorentey2004-04-19 14:21:37 +0000
commitde93c7914c81714c745cc60c16b56c3aa82ed01e (patch)
tree6470a8be1b0c85c8a71d3393c89618bbc1dd249d
parent6ed9e43af1ab2e8929bbdf30b31af0c6e774b619 (diff)
downloademacs-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.el17
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.
212If 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."