# HG changeset patch # User Karoly Lorentey # Date 1082384497 0 # Node ID 1707638677c9155b3f454867e18e5d6e7c7e58c7 # Parent c7a76f7d323c3bb5a80a621318b7022e00973df8 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 diff -r c7a76f7d323c -r 1707638677c9 lisp/server.el --- a/lisp/server.el Mon Apr 19 14:16:10 2004 +0000 +++ b/lisp/server.el Mon Apr 19 14:21:37 2004 +0000 @@ -207,8 +207,10 @@ (setq server-clients (cons (cons proc nil) server-clients)))) -(defun server-delete-client (client) - "Delete CLIENT, including its buffers, displays and frames." +(defun server-delete-client (client &optional noframe) + "Delete CLIENT, including its buffers, displays and frames. +If NOFRAME is non-nil, let the frames live. (To be used from +`delete-frame-functions'." ;; Force a new lookup of client (prevents infinite recursion). (setq client (server-client (if (listp client) (car client) client))) @@ -235,10 +237,11 @@ (delete-tty tty))) ;; Delete the client's frames. - (dolist (frame (frame-list)) - (if (and (frame-live-p frame) - (equal (car client) (frame-parameter frame 'client))) - (delete-frame frame))) + (unless noframe + (dolist (frame (frame-list)) + (if (and (frame-live-p frame) + (equal (car client) (frame-parameter frame 'client))) + (delete-frame frame)))) ;; Delete the client's process. (if (eq (process-status (car client)) 'open) @@ -285,7 +288,7 @@ ;; (Closing a terminal frame must not trigger a delete; ;; we must wait for delete-tty-after-functions.) (server-log (format "server-handle-delete-frame, frame %s" frame) proc) - (server-delete-client proc)))) + (server-delete-client proc 'noframe)))) ; Let delete-frame delete the frame later. (defun server-handle-suspend-tty (tty) "Notify the emacsclient process to suspend itself when its tty device is suspended."