From 3e4f0a982be053bf85afcd74cdd760c647645982 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Fri, 14 Jun 2019 13:15:26 +0200 Subject: [PATCH] Fix #1492: +term/toggle not closing popup And prevent term process from prompting on death. --- modules/term/term/autoload.el | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/modules/term/term/autoload.el b/modules/term/term/autoload.el index b5eb3bf44..c898e6c73 100644 --- a/modules/term/term/autoload.el +++ b/modules/term/term/autoload.el @@ -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))