From f1bb231bd5f6247b2e792b5ce7ee7ef6a0973122 Mon Sep 17 00:00:00 2001 From: Artur Malabarba Date: Thu, 15 Oct 2015 14:33:30 +0100 Subject: [PATCH] Fix scrolling outside command loop --- beacon.el | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/beacon.el b/beacon.el index 81eb64b9d..ba47f18ea 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 -- 2.39.2