From: Mark Wooding Date: Sat, 21 Nov 2009 11:18:28 +0000 (+0000) Subject: el/dot-emacs.el: Disconnect from display when last frame closes. X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~mdw/git/profile/commitdiff_plain/7bb78c6777f8a14a6e82b3ff6a8124c7b4f4609e el/dot-emacs.el: Disconnect from display when last frame closes. Now Emacs won't crash when the connection gets severed. Woohoo. --- diff --git a/el/dot-emacs.el b/el/dot-emacs.el index 66b709f..f535f10 100644 --- a/el/dot-emacs.el +++ b/el/dot-emacs.el @@ -718,6 +718,24 @@ (defun mdw-backup-enable-predicate (name) answer)))) (setq backup-enable-predicate 'mdw-backup-enable-predicate) +;; Frame cleanup. + +(defun mdw-last-one-out-turn-off-the-lights (frame) + "Disconnect from an X display if this was the last frame on that display." + (let ((frame-display (frame-parameter frame 'display))) + (when (and frame-display + (eq window-system 'x) + (not (some (lambda (fr) + (message "checking frame %s" frame) + (and (not (eq fr frame)) + (string= (frame-parameter frame 'display) + frame-display) + (progn "frame %s still uses us" nil))) + (frame-list)))) + (message "turn out the lights") + (run-with-idle-timer 0 nil #'x-close-connection frame-display)))) +(add-hook 'delete-frame-functions 'mdw-last-one-out-turn-off-the-lights) + ;;;-------------------------------------------------------------------------- ;;; General fontification.