From 7bb78c6777f8a14a6e82b3ff6a8124c7b4f4609e Mon Sep 17 00:00:00 2001 From: Mark Wooding Date: Sat, 21 Nov 2009 11:18:28 +0000 Subject: [PATCH] el/dot-emacs.el: Disconnect from display when last frame closes. Now Emacs won't crash when the connection gets severed. Woohoo. --- el/dot-emacs.el | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) 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 @@ doesn't match any of the regular expressions in 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. -- 2.11.0