Take care of monitoring kill of org buffer too

master
Clemens Radermacher 6 years ago
parent da4c49d1ea
commit fa29f4ebab
No known key found for this signature in database
GPG Key ID: ADEDCAC15E317EA0
  1. 29
      eaf.el

@ -586,19 +586,19 @@ Please ONLY use `eaf-bind-key' to edit EAF keybindings!"
(defun eaf-monitor-buffer-kill () (defun eaf-monitor-buffer-kill ()
(ignore-errors (ignore-errors
(with-current-buffer (buffer-name) (eaf-call "kill_buffer" eaf--buffer-id)
(cond ((derived-mode-p 'org-mode) (message (format "Kill %s" eaf--buffer-id))))
;; NOTE:
;; Because save org buffer will trigger `kill-buffer' action, (defun eaf--org-preview-monitor-kill ()
;; but org buffer still live after do `kill-buffer' action. ;; NOTE:
;; So i run a timer to check org buffer is live after `kill-buffer' aciton. ;; Because save org buffer will trigger `kill-buffer' action,
(when (member (buffer-file-name) eaf-org-file-list) ;; but org buffer still live after do `kill-buffer' action.
(unless (member (buffer-file-name) eaf-org-killed-file-list) ;; So i run a timer to check org buffer is live after `kill-buffer' aciton.
(push (buffer-file-name) eaf-org-killed-file-list)) (when (member (buffer-file-name) eaf-org-file-list)
(run-with-timer 1 nil (lambda () (eaf-org-killed-buffer-clean))))) (unless (member (buffer-file-name) eaf-org-killed-file-list)
((derived-mode-p 'eaf-mode) (push (buffer-file-name) eaf-org-killed-file-list))
(eaf-call "kill_buffer" eaf--buffer-id) (run-with-timer 1 nil (lambda () (eaf-org-killed-buffer-clean)))))
(message (format "Kill %s" eaf--buffer-id)))))))
(defun eaf--org-preview-monitor-buffer-save () (defun eaf--org-preview-monitor-buffer-save ()
(when (process-live-p eaf-process) (when (process-live-p eaf-process)
@ -808,7 +808,8 @@ Use it as (eaf-bind-key var key eaf-app-keybinding)"
(save-excursion (save-excursion
(find-file url) (find-file url)
(org-html-export-to-html) (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'. ;; Add file name to `eaf-org-file-list' after command `find-file'.
(unless (member url eaf-org-file-list) (unless (member url eaf-org-file-list)
(push url eaf-org-file-list)) (push url eaf-org-file-list))

Loading…
Cancel
Save