diff options
| author | Lukas Fürmetz <fuermetz@mailbox.org> | 2017-07-26 15:20:07 +0200 |
|---|---|---|
| committer | Lukas Fürmetz <fuermetz@mailbox.org> | 2017-07-26 15:20:07 +0200 |
| commit | e164ae7313e78c2ab31d4496a801ac0ec4d50535 (patch) | |
| tree | bbe0ac77f624bce0f00d99f4593c9ea823204ff5 | |
| parent | afecd203861d582b78629438cca60014c8e6c5dd (diff) | |
Cancel timer, when buffer is killed
| -rw-r--r-- | vterm.el | 15 |
1 files changed, 12 insertions, 3 deletions
@@ -4,7 +4,11 @@ (defvar vterm-term nil "Pointer to struct Term.") -(make-variable-buffer-local 'term) +(make-variable-buffer-local 'vterm-term) + +(defvar vterm-timer nil + "Timer to update the term.") +(make-variable-buffer-local 'vterm-timer) (defvar vterm-keymap-exceptions '("C-x" "C-u" "C-g" "C-h" "M-o") "Exceptions for vterm-keymap. @@ -18,7 +22,8 @@ be send to the terminal.") (setq vterm-term (vterm-new (window-height) (window-width)) buffer-read-only t) (setq-local scroll-conservatively 101) - (setq-local scroll-margin 0)) + (setq-local scroll-margin 0) + (add-hook 'kill-buffer-hook #'vterm-kill-buffer-hook t t)) ;; Keybindings (define-key vterm-mode-map [t] #'vterm-self-insert) @@ -50,7 +55,7 @@ be send to the terminal.") (pop-to-buffer buffer) (with-current-buffer buffer (vterm-mode) - (run-with-timer 0 .1 #'vterm-run-timer buffer)))) + (setq vterm-timer (run-with-timer 0 .1 #'vterm-run-timer buffer))))) (defun vterm-run-timer (buffer) (interactive) @@ -59,4 +64,8 @@ be send to the terminal.") (with-current-buffer buffer (vterm-update vterm-term)))) +(defun vterm-kill-buffer-hook () + (when (eq major-mode 'vterm-mode) + (cancel-timer vterm-timer))) + (provide 'vterm) |
