From 921b3baa1b18aaecda50ee41ced6602c18a1b1ce Mon Sep 17 00:00:00 2001 From: "Mingde (Matthew) Zeng" Date: Sat, 10 Oct 2020 23:54:34 -0400 Subject: [PATCH] Stop EAF process when the last EAF-mode buffer is killed Introduce eaf--get-eaf-buffers Signed-off-by: Mingde (Matthew) Zeng --- eaf.el | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/eaf.el b/eaf.el index 0ff1d75..ab0a9ea 100644 --- a/eaf.el +++ b/eaf.el @@ -1250,14 +1250,24 @@ keybinding variable to eaf-app-binding-alist." (eaf--delete-org-preview-file org-killed-buffer))) (setq eaf-org-killed-file-list nil)) +(defun eaf--get-eaf-buffers () + "A function that return a list of EAF buffers." + (cl-remove-if-not + (lambda (buffer) + (with-current-buffer buffer + (derived-mode-p 'eaf-mode))) + (buffer-list))) + (defun eaf--monitor-buffer-kill () - "Function monitoring when an EAF buffer is killed." + "A function monitoring when an EAF buffer is killed." (ignore-errors (eaf-call "kill_buffer" eaf--buffer-id) - (message "[EAF] Killed %s." eaf--buffer-id))) + (message "[EAF] Killed %s." eaf--buffer-id) + (when (eq (length (eaf--get-eaf-buffers)) 1) + (eaf-stop-process)))) (defun eaf--monitor-emacs-kill () - "Function monitoring when Emacs is killed, kill all EAF buffers." + "Function monitoring when Emacs is killed." (ignore-errors (when eaf-browser-continue-where-left-off (let* ((browser-restore-file-path