]> git.eshelyaron.com Git - emacs.git/commitdiff
(with-electric-help): Remove hook on exit.
authorRichard M. Stallman <rms@gnu.org>
Fri, 28 Mar 1997 22:58:58 +0000 (22:58 +0000)
committerRichard M. Stallman <rms@gnu.org>
Fri, 28 Mar 1997 22:58:58 +0000 (22:58 +0000)
(electric-help-exit): Add doc string.  Remove hook before exit.

lisp/ehelp.el

index c469c3d10f9faa1c08fd1227f0b488157dc1bf37..3656521f686376e25264eb945a0cd552af9d0876 100644 (file)
@@ -150,7 +150,10 @@ BUFFER is put into `default-major-mode' (or `fundamental-mode') when we exit."
            (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 @@ BUFFER is put into `default-major-mode' (or `fundamental-mode') when we exit."
 ;    (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.