]> code.delx.au - gnu-emacs-elpa/commitdiff
Merge commit 'b56ef781d5a712fd06378f78eb9551ab9269bb2e'
authorArtur Malabarba <bruce.connor.am@gmail.com>
Tue, 20 Oct 2015 21:03:12 +0000 (22:03 +0100)
committerArtur Malabarba <bruce.connor.am@gmail.com>
Tue, 20 Oct 2015 21:03:12 +0000 (22:03 +0100)
1  2 
packages/beacon/beacon.el

index 66853ca9a8c8ea976c98d9c2a95250df9aa1e15b,777e809985bf90754e8aedb908b345b1e7e2ccd9..777e809985bf90754e8aedb908b345b1e7e2ccd9
@@@ -271,11 -271,18 +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 +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: