blink."
:type '(repeat symbol))
-(defcustom beacon-dont-blink-commands '(recenter-top-bottom next-line previous-line
- forward-line)
+(defcustom beacon-dont-blink-commands '(next-line previous-line
+ forward-line)
"A list of commands that should not make the beacon blink.
Use this for commands that scroll the window in very
predictable ways, when the blink would be more distracting
(defun beacon--color-range ()
"Return a list of background colors for the beacon."
- (let* ((default-bg (or (background-color-at-point)
+ (let* ((default-bg (or (save-excursion
+ (unless (eobp)
+ (forward-line 1)
+ (unless (bobp) (forward-char -1)))
+ (background-color-at-point))
(face-background 'default)))
(bg (color-values (if (string-match "\\`unspecified-" default-bg)
(face-attribute 'beacon-fallback-background :background)
default-bg)))
(fg (cond
((stringp beacon-color) (color-values beacon-color))
- ((< (color-distance "black" bg)
- (color-distance "white" bg))
+ ((and (stringp bg)
+ (< (color-distance "black" bg)
+ (color-distance "white" bg)))
(make-list 3 (* beacon-color 65535)))
(t (make-list 3 (* (- 1 beacon-color) 65535))))))
(apply #'seq-mapn (lambda (r g b) (format "#%04x%04x%04x" r g b))