From 9201fa0683b880f1ff0101f471b4b2243449ea51 Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Fri, 28 Mar 1997 22:58:58 +0000 Subject: [PATCH] (with-electric-help): Remove hook on exit. (electric-help-exit): Add doc string. Remove hook before exit. --- lisp/ehelp.el | 15 ++++++++++++--- 1 file 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. -- 2.39.2