avy.el (avy--overlay): Fix interaction with goto-address-mode

The other overlay has no priority, but sets a face. That face is
overridden by the avy overlay (which has priority).

Fixes abo-abo/ace-link#24
This commit is contained in:
Oleh Krehel 2016-01-20 09:22:34 +01:00
parent 15d0679385
commit 369af594e5

11
avy.el
View File

@ -1,4 +1,4 @@
;;; avy.el --- set-based completion -*- lexical-binding: t -*- ;;; avy.el --- tree-based completion -*- lexical-binding: t -*-
;; Copyright (C) 2015 Free Software Foundation, Inc. ;; Copyright (C) 2015 Free Software Foundation, Inc.
@ -640,11 +640,18 @@ COMPOSE-FN is a lambda that concatenates the old string at BEG with STR."
(ol (make-overlay beg (or end (1+ beg)) (window-buffer wnd))) (ol (make-overlay beg (or end (1+ beg)) (window-buffer wnd)))
(old-str (if (eq beg eob) "" (avy--old-str beg wnd))) (old-str (if (eq beg eob) "" (avy--old-str beg wnd)))
(os-line-prefix (get-text-property 0 'line-prefix old-str)) (os-line-prefix (get-text-property 0 'line-prefix old-str))
(os-wrap-prefix (get-text-property 0 'wrap-prefix old-str))) (os-wrap-prefix (get-text-property 0 'wrap-prefix old-str))
other-ol)
(when os-line-prefix (when os-line-prefix
(add-text-properties 0 1 `(line-prefix ,os-line-prefix) str)) (add-text-properties 0 1 `(line-prefix ,os-line-prefix) str))
(when os-wrap-prefix (when os-wrap-prefix
(add-text-properties 0 1 `(wrap-prefix ,os-wrap-prefix) str)) (add-text-properties 0 1 `(wrap-prefix ,os-wrap-prefix) str))
(when (setq other-ol (cl-find-if
(lambda (o) (overlay-get o 'goto-address))
(overlays-at beg)))
(add-text-properties
0 (length old-str)
`(face ,(overlay-get other-ol 'face)) old-str))
(overlay-put ol 'window wnd) (overlay-put ol 'window wnd)
(overlay-put ol 'category 'avy) (overlay-put ol 'category 'avy)
(overlay-put ol (if (eq beg eob) (overlay-put ol (if (eq beg eob)