]> code.delx.au - gnu-emacs/blobdiff - lisp/isearch.el
(help-menu-bar-map): Put the Help item in this map.
[gnu-emacs] / lisp / isearch.el
index 6ac5fb62d0e769b4b3d1e459df4203cc94b883be..ec7005ce9d88ec2856f86f9cf134d0ca86a70270 100644 (file)
@@ -4,7 +4,7 @@
 
 ;; Author: Daniel LaLiberte <liberte@cs.uiuc.edu>
 
-;; |$Date: 1993/06/09 11:53:58 $|$Revision: 1.42 $
+;; |$Date: 1993/07/08 22:33:57 $|$Revision: 1.45 $
 
 ;; This file is not yet part of GNU Emacs, but it is based almost
 ;; entirely on isearch.el which is part of GNU Emacs.
@@ -589,8 +589,7 @@ is treated as a regexp.  See \\[isearch-forward] for more info."
     (if (/= (point) isearch-opoint)
        (progn
          (push-mark isearch-opoint t)
-         (if transient-mark-mode
-             (setq mark-active nil))
+         (deactivate-mark)
          (or executing-macro (> (minibuffer-depth) 0)
              (message "Mark saved where search started")))
       ;; (message "") why is this needed?
@@ -676,7 +675,7 @@ If first char entered is \\[isearch-yank-word], then do word search instead."
   ;; Editing doesn't back up the search point.  Should it?
   (interactive)
   (condition-case err
-      (let (isearch-nonincremental     ; should search nonincrementally?
+      (let ((isearch-nonincremental isearch-nonincremental)
 
            ;; Locally bind all isearch global variables to protect them
            ;; from recursive isearching.
@@ -1008,13 +1007,21 @@ and the meta character is unread so that it applies to editing the string."
         (isearch-edit-string))
        (search-exit-option
         (let ((key (this-command-keys))
+              (index 0)
               window)
           (apply 'isearch-unread (listify-key-sequence key))
+          ;; Properly handle scroll-bar and mode-line clicks
+          ;; for which a dummy prefix event was generated as (aref key 0).
+          (and (> (length key) 1)
+               (symbolp (aref key 0))
+               (listp (aref key 1))
+               (consp (posn-point (event-start (aref key 1))))
+               (setq index 1))
           ;; If we got a mouse click, maybe it was read with the buffer
           ;; it was clicked on.  If so, that buffer, not the current one,
           ;; is in isearch mode.  So end the search in that buffer.
-          (if (and (listp (aref key 0))
-                   (setq window (posn-window (event-start (aref key 0))))
+          (if (and (listp (aref key index))
+                   (setq window (posn-window (event-start (aref key index))))
                    (windowp window))
               (save-excursion
                 (set-buffer (window-buffer window))
@@ -1024,7 +1031,6 @@ and the meta character is unread so that it applies to editing the string."
         (isearch-process-search-string (this-command-keys)
                                        (this-command-keys)))))
 
-
 (defun isearch-quote-char ()
   "Quote special characters for incremental search."
   (interactive)