branch: elpa/minibar
commit 0b02619c7fe86ef9afdd00c3b1d440e166bcebcd
Author: Akib Azmain Turja <a...@disroot.org>
Commit: Akib Azmain Turja <a...@disroot.org>

    Don't stop updating after first update after idle
---
 minibar.el | 23 +++++++++++++++++------
 1 file changed, 17 insertions(+), 6 deletions(-)

diff --git a/minibar.el b/minibar.el
index afd06bfb04..6437447332 100644
--- a/minibar.el
+++ b/minibar.el
@@ -76,7 +76,7 @@ string to display, or nil in case there is to show."
   :type '(repeat function))
 
 (defcustom minibar-update-interval 1
-  "Update Minibar every this many seconds."
+  "Update Minibar every this many seconds while idling."
   :type 'number)
 
 (defface minibar-face
@@ -127,6 +127,18 @@ string to display, or nil in case there is to show."
           (erase-buffer)
           (insert text))))))
 
+(defun minibar--cancel-timer ()
+  "Cancel timer for updating Minibar."
+  (when minibar--update-timer
+    (cancel-timer minibar--update-timer)
+    (setq minibar--update-timer nil)))
+
+(defun minibar--start-timer ()
+  "Start timer to update Minibar."
+  (minibar--cancel-timer)
+  (setq minibar--update-timer
+        (run-with-timer t minibar-update-interval #'minibar-update)))
+
 ;;;###autoload
 (define-minor-mode minibar-mode
   "Toggle Minibar display."
@@ -136,11 +148,10 @@ string to display, or nil in case there is to show."
   :global t
   (if minibar-mode
       (progn
-        (when minibar--update-timer
-          (cancel-timer minibar--update-timer))
-        (setq minibar--update-timer
-              (run-with-idle-timer minibar-update-interval t
-                                   #'minibar-update)))
+        (add-hook 'pre-command-hook #'minibar--cancel-timer)
+        (add-hook 'post-command-hook #'minibar--start-timer))
+    (remove-hook 'pre-command-hook #'minibar--cancel-timer)
+    (remove-hook 'post-command-hook #'minibar--start-timer)
     (when minibar--update-timer
       (cancel-timer minibar--update-timer)
       (setq minibar--update-timer nil))

Reply via email to