From fa29f4ebab925b32c2ac62e5c071590728ad76d7 Mon Sep 17 00:00:00 2001 From: Clemens Radermacher Date: Thu, 12 Dec 2019 14:18:04 +0100 Subject: [PATCH] Take care of monitoring kill of org buffer too --- eaf.el | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/eaf.el b/eaf.el index eaba608..8333766 100644 --- a/eaf.el +++ b/eaf.el @@ -586,19 +586,19 @@ Please ONLY use `eaf-bind-key' to edit EAF keybindings!" (defun eaf-monitor-buffer-kill () (ignore-errors - (with-current-buffer (buffer-name) - (cond ((derived-mode-p 'org-mode) - ;; NOTE: - ;; Because save org buffer will trigger `kill-buffer' action, - ;; but org buffer still live after do `kill-buffer' action. - ;; So i run a timer to check org buffer is live after `kill-buffer' aciton. - (when (member (buffer-file-name) eaf-org-file-list) - (unless (member (buffer-file-name) eaf-org-killed-file-list) - (push (buffer-file-name) eaf-org-killed-file-list)) - (run-with-timer 1 nil (lambda () (eaf-org-killed-buffer-clean))))) - ((derived-mode-p 'eaf-mode) - (eaf-call "kill_buffer" eaf--buffer-id) - (message (format "Kill %s" eaf--buffer-id))))))) + (eaf-call "kill_buffer" eaf--buffer-id) + (message (format "Kill %s" eaf--buffer-id)))) + +(defun eaf--org-preview-monitor-kill () + ;; NOTE: + ;; Because save org buffer will trigger `kill-buffer' action, + ;; but org buffer still live after do `kill-buffer' action. + ;; So i run a timer to check org buffer is live after `kill-buffer' aciton. + (when (member (buffer-file-name) eaf-org-file-list) + (unless (member (buffer-file-name) eaf-org-killed-file-list) + (push (buffer-file-name) eaf-org-killed-file-list)) + (run-with-timer 1 nil (lambda () (eaf-org-killed-buffer-clean))))) + (defun eaf--org-preview-monitor-buffer-save () (when (process-live-p eaf-process) @@ -808,7 +808,8 @@ Use it as (eaf-bind-key var key eaf-app-keybinding)" (save-excursion (find-file url) (org-html-export-to-html) - (add-hook 'after-save-hook #'eaf--org-preview-monitor-buffer-save nil t)) + (add-hook 'after-save-hook #'eaf--org-preview-monitor-buffer-save nil t) + (add-hook 'kill-buffer-hook #'eaf--org-preview-monitor-kill nil t)) ;; Add file name to `eaf-org-file-list' after command `find-file'. (unless (member url eaf-org-file-list) (push url eaf-org-file-list))