changeset 32083:b716f8518dd7

(isearch-lazy-highlight-update): Don't put a lazy highlighting overlay with a different face over the overlay isearch uses to highlight the current match because that can lead to bad face combinations.
author Gerd Moellmann <gerd@gnu.org>
date Mon, 02 Oct 2000 19:50:18 +0000
parents 5821ab438337
children 5c37701abd85
files lisp/isearch.el
diffstat 1 files changed, 22 insertions(+), 13 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/isearch.el	Mon Oct 02 19:21:46 2000 +0000
+++ b/lisp/isearch.el	Mon Oct 02 19:50:18 2000 +0000
@@ -1933,19 +1933,28 @@
                      isearch-lazy-highlight-start))
         (let ((found (isearch-lazy-highlight-search))) ;do search
           (if found
-              ;; found the next match
-              (let ((ov (make-overlay (match-beginning 0)
-                                      (match-end 0))))
-                (overlay-put ov 'face 'isearch-lazy-highlight-face)
-                (overlay-put ov 'priority 0)
-                (setq isearch-lazy-highlight-overlays
-                      (cons ov isearch-lazy-highlight-overlays))
-                (setq isearch-lazy-highlight-timer
-                      (run-at-time isearch-lazy-highlight-interval nil
-                                   'isearch-lazy-highlight-update))
-                (if isearch-forward
-                    (setq isearch-lazy-highlight-end (point))
-                  (setq isearch-lazy-highlight-start (point))))
+	      (progn
+		;; Don't put a second overlay with a different face
+		;; over/under the overlay isearch uses to highlight the
+		;; current match.  That can lead to odd looking face
+		;; combinations.
+		(unless (memq isearch-overlay
+			      (overlays-at (match-beginning 0)))
+		  ;; found the next match
+		  (let ((ov (make-overlay (match-beginning 0)
+					  (match-end 0))))
+		    (overlay-put ov 'face isearch-lazy-highlight-face)
+		    (overlay-put ov 'priority 0)
+		    (setq isearch-lazy-highlight-overlays
+			  (cons ov isearch-lazy-highlight-overlays))))
+		  
+		(setq isearch-lazy-highlight-timer
+		      (run-at-time isearch-lazy-highlight-interval nil
+				   'isearch-lazy-highlight-update))
+		(if isearch-forward
+		    (setq isearch-lazy-highlight-end (point))
+		  (setq isearch-lazy-highlight-start (point))))
+
             ;; found no next match
             (when (not isearch-lazy-highlight-wrapped)
               ;; let's try wrapping around the end of the buffer