]> code.delx.au - dotemacs/commitdiff
close all buffers when last frame closes
authorJames Bunton <jamesbunton@delx.net.au>
Sun, 26 Jun 2016 12:46:17 +0000 (22:46 +1000)
committerJames Bunton <jamesbunton@delx.net.au>
Sun, 26 Jun 2016 12:46:44 +0000 (22:46 +1000)
modes.el

index 1a731a7a8d3c44cfcf5076caecfccb8b64e08775..f517c85db0fb67c34d68fd32f0878512bac79e3b 100644 (file)
--- a/modes.el
+++ b/modes.el
       (ibuffer-jump-to-buffer recent-buffer-name)))
 (ad-activate 'ibuffer)
 (global-set-key (kbd "C-x C-b") 'ibuffer)
+
+(defun frame-list-ignoring-initial-frame ()
+  (filtered-frame-list
+   (lambda (frame)
+     (not (equal "initial_terminal" (terminal-name frame))))))
+
+(defun close-buffers-if-last-frame-deleted (frame)
+  "Close all buffers if the last frame was deleted"
+  (when (equal (list frame) (frame-list-ignoring-initial-frame))
+    (dolist (buffer (buffer-list))
+      (when (and (buffer-file-name buffer) (not (buffer-modified-p buffer)))
+        (kill-buffer buffer)))))
+(add-to-list 'delete-frame-functions #'close-buffers-if-last-frame-deleted)