Mercurial > emacs
diff lisp/server.el @ 83335:60208d3a0bb1
Handle and document that `delete-frame' may call functions in `delete-frame-functions' twice.
* src/frame.c (syms_of_frame): Add warning to `delete-frame-functions' description.
* lisp/frame.el (terminal-handle-delete-frame): Check that the frame is alive.
* lisp/server.el (server-handle-delete-frame): Ditto. Remove bogus comment.
git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-375
author | Karoly Lorentey <lorentey@elte.hu> |
---|---|
date | Wed, 06 Jul 2005 01:41:56 +0000 |
parents | 6afa124501e6 |
children | ccccb663aed3 |
line wrap: on
line diff
--- a/lisp/server.el Wed Jul 06 00:42:58 2005 +0000 +++ b/lisp/server.el Wed Jul 06 01:41:56 2005 +0000 @@ -314,7 +314,8 @@ (defun server-handle-delete-frame (frame) "Delete the client connection when the emacsclient frame is deleted." (let ((proc (frame-parameter frame 'client))) - (when (and proc + (when (and (frame-live-p frame) + proc (or (window-system frame) ;; A terminal display must not yet be deleted if ;; there are other frames on it. @@ -326,10 +327,6 @@ (frame-list)) frame-num)))) (server-log (format "server-handle-delete-frame, frame %s" frame) proc) - ;; XXX Deleting the process causes emacsclient to exit - ;; immediately, which might happen before Emacs closes the - ;; display. I think we need a `delete-frame-after-functions' - ;; hook here. (server-delete-client proc 'noframe)))) ; Let delete-frame delete the frame later. (defun server-handle-suspend-tty (display)