From: Artur Malabarba Date: Tue, 20 Oct 2015 21:03:12 +0000 (+0100) Subject: Merge commit 'b56ef781d5a712fd06378f78eb9551ab9269bb2e' X-Git-Url: https://code.delx.au/gnu-emacs-elpa/commitdiff_plain/0c75f1dc52104b21f550aa5009f70b789931bf18?hp=54a75e6f7c580d5821e8b6f695b3c51240f966cd Merge commit 'b56ef781d5a712fd06378f78eb9551ab9269bb2e' --- diff --git a/packages/beacon/beacon.el b/packages/beacon/beacon.el index 66853ca9a..777e80998 100644 --- a/packages/beacon/beacon.el +++ b/packages/beacon/beacon.el @@ -271,11 +271,18 @@ If DELTA is nil, return nil." (markerp beacon--previous-place) (equal (marker-buffer beacon--previous-place) (current-buffer)) + ;; Quick check that prevents running the code below in very + ;; short movements (like typing). (> (abs (- (point) beacon--previous-place)) delta) - (> (count-screen-lines (min (point) beacon--previous-place) - (max (point) beacon--previous-place)) - delta))) + ;; Check if the movement was >= DELTA lines by moving DELTA + ;; lines. `count-screen-lines' is too slow if the movement had + ;; thousands of lines. + (save-excursion + (goto-char (min beacon--previous-place (point))) + (vertical-motion delta) + (> (max (point) beacon--previous-place) + (line-beginning-position))))) (defun beacon--maybe-push-mark () "Push mark if it seems to be safe." @@ -343,11 +350,17 @@ unreliable, so just blink immediately." (if beacon-mode (progn (add-hook 'window-scroll-functions #'beacon--window-scroll-function) + (add-hook 'focus-in-hook #'beacon-blink) (add-hook 'post-command-hook #'beacon--post-command) (add-hook 'pre-command-hook #'beacon--vanish)) + (remove-hook 'focus-in-hook #'beacon-blink) (remove-hook 'window-scroll-functions #'beacon--window-scroll-function) (remove-hook 'post-command-hook #'beacon--post-command) (remove-hook 'pre-command-hook #'beacon--vanish))) (provide 'beacon) ;;; beacon.el ends here + +;; Local Variables: +;; indent-tabs-mode: nil +;; End: