summaryrefslogtreecommitdiff
path: root/lisp/ehelp.el
diff options
context:
space:
mode:
Diffstat (limited to 'lisp/ehelp.el')
-rw-r--r--lisp/ehelp.el15
1 files changed, 12 insertions, 3 deletions
diff --git a/lisp/ehelp.el b/lisp/ehelp.el
index c469c3d10f9..3656521f686 100644
--- a/lisp/ehelp.el
+++ b/lisp/ehelp.el
@@ -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.