mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-02-18 02:47:36 +00:00
Cancel timer when world-clock buffer is killed
* lisp/time.el (world-clock-timer): New variable. (world-clock-cancel-timer): New defun. (world-clock): Add 'world-clock-cancel-timer' to 'kill-buffer-hook'.
This commit is contained in:
parent
18ae12e053
commit
d37861535d
1 changed files with 11 additions and 1 deletions
12
lisp/time.el
12
lisp/time.el
|
|
@ -523,6 +523,8 @@ See `world-clock'."
|
|||
(setq-local revert-buffer-function #'world-clock-update)
|
||||
(setq show-trailing-whitespace nil))
|
||||
|
||||
(defvar world-clock-timer nil)
|
||||
|
||||
(defun world-clock-display (alist)
|
||||
"Replace current buffer text with times in various zones, based on ALIST."
|
||||
(let ((inhibit-read-only t)
|
||||
|
|
@ -561,12 +563,20 @@ To turn off the world time display, go to the window and type `\\[quit-window]'.
|
|||
(interactive)
|
||||
(when (and world-clock-timer-enable
|
||||
(not (get-buffer world-clock-buffer-name)))
|
||||
(run-at-time t world-clock-timer-second #'world-clock-update))
|
||||
(setq world-clock-timer
|
||||
(run-at-time t world-clock-timer-second #'world-clock-update))
|
||||
(add-hook 'kill-buffer-hook #'world-clock-cancel-timer))
|
||||
(pop-to-buffer world-clock-buffer-name)
|
||||
(world-clock-display (time--display-world-list))
|
||||
(world-clock-mode)
|
||||
(fit-window-to-buffer))
|
||||
|
||||
(defun world-clock-cancel-timer ()
|
||||
"Cancel the world clock timer."
|
||||
(when world-clock-timer
|
||||
(cancel-timer world-clock-timer)
|
||||
(setq world-clock-timer nil)))
|
||||
|
||||
(defun world-clock-update (&optional _arg _noconfirm)
|
||||
"Update the `world-clock' buffer."
|
||||
(if (get-buffer world-clock-buffer-name)
|
||||
|
|
|
|||
Loading…
Reference in a new issue