From: Richard M. Stallman Date: Fri, 28 Mar 1997 22:58:58 +0000 (+0000) Subject: (with-electric-help): Remove hook on exit. X-Git-Tag: emacs-20.1~2690 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=9201fa0683b880f1ff0101f471b4b2243449ea51;p=emacs.git (with-electric-help): Remove hook on exit. (electric-help-exit): Add doc string. Remove hook before exit. --- 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.