diff lisp/ehelp.el @ 17255:30b7f4899d66

(with-electric-help): Remove hook on exit. (electric-help-exit): Add doc string. Remove hook before exit.
author Richard M. Stallman <rms@gnu.org>
date Fri, 28 Mar 1997 22:58:58 +0000
parents f1e444468043
children bad7093b5361
line wrap: on
line diff
--- a/lisp/ehelp.el	Fri Mar 28 02:33:07 1997 +0000
+++ b/lisp/ehelp.el	Fri Mar 28 22:58:58 1997 +0000
@@ -150,7 +150,10 @@
            (if (eq (car-safe (electric-help-command-loop))
                    'retain)
                (setq config (current-window-configuration))
-               (setq bury t)))
+               (setq bury t))
+	   ;; Remove the hook.
+	   (if (memq 'electric-help-retain mouse-leave-buffer-hook)
+	       (remove-hook 'mouse-leave-buffer-hook 'electric-help-retain)))
       (message "")
       (set-buffer buffer)
       (setq buffer-read-only nil)
@@ -221,9 +224,15 @@
 ;    (scroll-up arg)))
 
 (defun electric-help-exit ()
-  ">>>Doc"
+  "Exit `electric-help', restoring the previous window/buffer configuration.
+\(The *Help* buffer will be buried.)"
   (interactive)
-  (throw 'exit t))
+  ;; Make sure that we don't throw twice, even if two events cause
+  ;; calling this function:
+  (if (memq 'electric-help-retain mouse-leave-buffer-hook)
+      (progn
+	(remove-hook 'mouse-leave-buffer-hook 'electric-help-retain)
+	(throw 'exit t))))
 
 (defun electric-help-retain ()
   "Exit `electric-help', retaining the current window/buffer configuration.