Fix #1492: +term/toggle not closing popup

And prevent term process from prompting on death.
This commit is contained in:
Henrik Lissner 2019-06-14 13:15:26 +02:00
parent e4c8beec68
commit 3e4f0a982b
No known key found for this signature in database
GPG Key ID: 5F6C0EA160557395

View File

@ -3,6 +3,13 @@
(defvar +term--dedicated-buffer nil)
(defvar +term--dedicated-window nil)
(defun +term--kill-dedicated ()
(when (multi-term-window-exist-p +term--dedicated-window)
(delete-window +term--dedicated-window))
(when (multi-term-buffer-exist-p +term--dedicated-buffer)
(set-process-query-on-exit-flag (get-buffer-process +term--dedicated-buffer) nil)
(kill-buffer +term--dedicated-buffer)))
;;;###autoload
(defun +term/toggle (arg)
"Toggle a persistent terminal popup window at project's root.
@ -14,18 +21,13 @@ If prefix ARG, recreate term buffer in the current project's root."
(require 'multi-term)
(let ((default-directory (or (doom-project-root) default-directory))
(multi-term-dedicated-buffer-name "doom:term-popup")
(multi-term-dedicated-select-after-open-p t)
confirm-kill-processes)
(multi-term-dedicated-select-after-open-p t))
(when arg
(when (multi-term-window-exist-p +term--dedicated-window)
(delete-window +term--dedicated-window))
(when (multi-term-buffer-exist-p +term--dedicated-buffer)
(when-let (process (get-buffer-process +term--dedicated-buffer))
(kill-process process))
(kill-buffer +term--dedicated-buffer)))
(if (multi-term-dedicated-exist-p)
(+term--kill-dedicated))
(if (and (multi-term-window-exist-p +term--dedicated-window)
(multi-term-buffer-exist-p +term--dedicated-buffer))
(if (eq (selected-window) +term--dedicated-window)
(multi-term-dedicated-close)
(+term--kill-dedicated)
(select-window +term--dedicated-window)
(when (bound-and-true-p evil-local-mode)
(evil-change-to-initial-state))