branch: master
commit f1bb231bd5f6247b2e792b5ce7ee7ef6a0973122
Author: Artur Malabarba <bruce.connor...@gmail.com>
Commit: Artur Malabarba <bruce.connor...@gmail.com>

    Fix scrolling outside command loop
---
 beacon.el |   12 +++++++++++-
 1 files changed, 11 insertions(+), 1 deletions(-)

diff --git a/beacon.el b/beacon.el
index 81eb64b..ba47f18 100644
--- a/beacon.el
+++ b/beacon.el
@@ -258,7 +258,17 @@ If DELTA is nil, return nil."
     (setq beacon--previous-place (point-marker))))
 
 (defun beacon--window-scroll-function (win _start-pos)
-  (setq beacon--window-scrolled win))
+  "Blink the beacon or record that window has been scrolled.
+If invoked during the command loop, record the current window so
+that it may be blinked on post-command.  This is because the
+scrolled window might not be active, but we only know that at
+`post-command-hook'.
+
+If invoked outside the command loop, `post-command-hook' would be
+unreliable, so just blink immediately."
+  (if this-command
+      (setq beacon--window-scrolled win)
+    (beacon-blink)))
 
 
 ;;; Minor-mode

Reply via email to