changeset 1601:442db3c3c43b

[xemacs-hg @ 2003-08-02 08:42:10 by michaels] 2003-07-31 Mike Sperber <mike@xemacs.org> * isearch-mode.el (isearch-mode-help): (isearch-update): (isearch-done): (isearch-edit-string): Change the way window configurations are handled: Formerly, the code would do `set-window-configuration' off `pre-command-hook' which isn't really allowed. (The old window-configuration code would quietly ignore this restriction.) Instead, save the window configuration only when someone asks for help, and restore afterwards, and otherwise leave it alone.
author michaels
date Sat, 02 Aug 2003 08:42:11 +0000
parents 98419bcfe892
children 34183e92bf01
files lisp/ChangeLog lisp/isearch-mode.el
diffstat 2 files changed, 23 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Fri Aug 01 21:52:21 2003 +0000
+++ b/lisp/ChangeLog	Sat Aug 02 08:42:11 2003 +0000
@@ -1,3 +1,15 @@
+2003-07-31  Mike Sperber  <mike@xemacs.org>
+
+	* isearch-mode.el (isearch-mode-help): 
+	(isearch-update):
+	(isearch-done):
+	(isearch-edit-string): Change the way window configurations are
+	handled: Formerly, the code would do `set-window-configuration'
+	off `pre-command-hook' which isn't really allowed.  (The old
+	window-configuration code would quietly ignore this restriction.)
+	Instead, save the window configuration only when someone asks for
+	help, and restore afterwards, and otherwise leave it alone.
+
 2003-07-24  Mike Sperber  <mike@xemacs.org>
 
 	* post-gc.el (simple-finalizer-ephemerons): 
--- a/lisp/isearch-mode.el	Fri Aug 01 21:52:21 2003 +0000
+++ b/lisp/isearch-mode.el	Sat Aug 02 08:42:11 2003 +0000
@@ -490,10 +490,12 @@
 ;; it, though.  -hniksic
 (defun isearch-mode-help ()
   (interactive "_")
-  (let ((w (selected-window)))
-    (describe-function 'isearch-forward)
-    (select-window w))
-  (isearch-update))
+  (let ((config (current-window-configuration)))
+    (let ((w (selected-window)))
+      (describe-function 'isearch-forward)
+      (select-window w))
+    (isearch-update)
+    (setq isearch-window-configuration config)))
 
 
 ;;;==================================================================
@@ -539,7 +541,6 @@
 	  search-ring-yank-pointer nil
 	  regexp-search-ring-yank-pointer nil
 	  isearch-unhidden-extents nil
-	  isearch-window-configuration (current-window-configuration)
 
 	  ;; #### What we really need is a buffer-local
 	  ;; overriding-local-map.  See isearch-pre-command-hook for
@@ -584,6 +585,10 @@
 
 (defun isearch-update ()
   ;; Called after each command to update the display.
+  (if isearch-window-configuration
+      (progn
+	(set-window-configuration isearch-window-configuration)
+	(setq isearch-window-configuration nil)))
   (if (null unread-command-events)
       (progn
 	(if (not (input-pending-p))
@@ -622,6 +627,7 @@
 
 (defun isearch-done (&optional nopush edit)
   ;; Called by all commands that terminate isearch-mode.
+  (setq isearch-window-configuration nil)
   (let ((inhibit-quit t)) ; danger danger!
     (if (and isearch-buffer (buffer-live-p isearch-buffer))
 	;; Some loser process filter might have switched the window's
@@ -648,8 +654,6 @@
     (let ((found-start (window-start (selected-window)))
 	  (found-point (point)))
       (cond ((eq (selected-frame) isearch-selected-frame)
-	     (set-window-configuration isearch-window-configuration)
-
 	     (if isearch-small-window
 		 (goto-char found-point)
 	       ;; Exiting the save-window-excursion clobbers
@@ -768,7 +772,6 @@
 	      (isearch-slow-terminal-mode isearch-slow-terminal-mode)
 	      (isearch-small-window isearch-small-window)
 	      (isearch-recursive-edit isearch-recursive-edit)
-	      (isearch-window-configuration (current-window-configuration))
 	      (isearch-selected-frame (selected-frame))
 	      )
 	  ;; Actually terminate isearching until editing is done.