[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
master 64da2e8 1/3: Improve display-time-world UI (Bug#40863)
From: |
Stefan Kangas |
Subject: |
master 64da2e8 1/3: Improve display-time-world UI (Bug#40863) |
Date: |
Tue, 18 Aug 2020 14:19:40 -0400 (EDT) |
branch: master
commit 64da2e80966049222486c3f9f1757504c3a42331
Author: Stefan Kangas <stefankangas@gmail.com>
Commit: Stefan Kangas <stefankangas@gmail.com>
Improve display-time-world UI (Bug#40863)
* lisp/time.el (display-time-world-mode): Set 'revert-buffer-function'
to 'display-time-world-timer'.
(display-time-world-label): New face.
(display-time-world-display): Use the new face. Move point to new
buffer on creation and resize.
---
lisp/time.el | 23 +++++++++++++++--------
1 file changed, 15 insertions(+), 8 deletions(-)
diff --git a/lisp/time.el b/lisp/time.el
index 44fd1a7..3625940 100644
--- a/lisp/time.el
+++ b/lisp/time.el
@@ -509,9 +509,14 @@ runs the normal hook `display-time-hook' after each
update."
'display-time-event-handler)))
+(defface display-time-world-label
+ '((t :inherit font-lock-variable-name-face))
+ "Face for time zone label.")
+
(define-derived-mode display-time-world-mode special-mode "World clock"
"Major mode for buffer that displays times in various time zones.
See `display-time-world'."
+ (setq revert-buffer-function #'display-time-world-timer)
(setq show-trailing-whitespace nil))
(defun display-time-world-display (alist)
@@ -533,7 +538,10 @@ See `display-time-world'."
(setq max-width width))))
(setq fmt (concat "%-" (int-to-string max-width) "s %s\n"))
(dolist (timedata (nreverse result))
- (insert (format fmt (car timedata) (cdr timedata))))
+ (insert (format fmt
+ (propertize (car timedata)
+ 'face 'display-time-world-label)
+ (cdr timedata))))
(delete-char -1))
(goto-char (point-min)))
@@ -541,18 +549,17 @@ See `display-time-world'."
(defun display-time-world ()
"Enable updating display of times in various time zones.
`display-time-world-list' specifies the zones.
-To turn off the world time display, go to that window and type `q'."
+To turn off the world time display, go to that window and type
`\\[quit-window]'."
(interactive)
(when (and display-time-world-timer-enable
(not (get-buffer display-time-world-buffer-name)))
(run-at-time t display-time-world-timer-second 'display-time-world-timer))
- (with-current-buffer (get-buffer-create display-time-world-buffer-name)
- (display-time-world-display (time--display-world-list))
- (display-buffer display-time-world-buffer-name
- (cons nil '((window-height . fit-window-to-buffer))))
- (display-time-world-mode)))
+ (pop-to-buffer display-time-world-buffer-name)
+ (display-time-world-display (time--display-world-list))
+ (display-time-world-mode)
+ (fit-window-to-buffer))
-(defun display-time-world-timer ()
+(defun display-time-world-timer (&optional _arg _noconfirm)
(if (get-buffer display-time-world-buffer-name)
(with-current-buffer (get-buffer display-time-world-buffer-name)
(display-time-world-display (time--display-world-list)))