summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJuri Linkov <juri@linkov.net>2021-12-01 19:36:00 +0200
committerJuri Linkov <juri@linkov.net>2021-12-01 19:36:00 +0200
commit8230a47ecc8c11f518ee20a9055c0c27339a6730 (patch)
treec259792c17fcff7fbe00996705158acf9086d04e
parent740ae2818fa585b52b7e0b29f1612a812959d4d3 (diff)
downloademacs-8230a47ecc8c11f518ee20a9055c0c27339a6730.tar.gz
* lisp/help.el (help--analyze-key): Prefer posn-set-point over mouse-set-point
* lisp/help.el (help--analyze-key): Use posn-set-point instead of mouse-set-point that runs the hook mouse-leave-buffer-hook via mouse-minibuffer-check. Using posn-set-point also unnecessitates extra conditions added in bug#51421. * lisp/isearch.el (isearch-describe-key, isearch-describe-mode): Add precautions to not call isearch-update when the executed command exited isearch-mode (bug#51173).
-rw-r--r--lisp/help.el14
-rw-r--r--lisp/isearch.el4
2 files changed, 7 insertions, 11 deletions
diff --git a/lisp/help.el b/lisp/help.el
index 21c8255c690..47faf44b37f 100644
--- a/lisp/help.el
+++ b/lisp/help.el
@@ -697,18 +697,14 @@ in the selected window."
(mouse-msg (if (or (memq 'click modifiers) (memq 'down modifiers)
(memq 'drag modifiers))
" at that spot" ""))
- ;; Use `mouse-set-point' to handle the case when a menu item
+ ;; Use `posn-set-point' to handle the case when a menu item
;; is selected from the context menu that should describe KEY
;; at the position of mouse click that opened the context menu.
- ;; When no mouse was involved, don't use `mouse-set-point'.
- (defn (if (or buffer
- ;; Clicks on the menu bar produce "event" that
- ;; is just '(menu-bar)', for which
- ;; `mouse-set-point' is not useful.
- (and (not (windowp (posn-window (event-start event))))
- (not (framep (posn-window (event-start event))))))
+ ;; When no mouse was involved, don't use `posn-set-point'.
+ (defn (if buffer
(key-binding key t)
- (save-excursion (mouse-set-point event) (key-binding key t)))))
+ (save-excursion (posn-set-point (event-end event))
+ (key-binding key t)))))
;; Handle the case where we faked an entry in "Select and Paste" menu.
(when (and (eq defn nil)
(stringp (aref key (1- (length key))))
diff --git a/lisp/isearch.el b/lisp/isearch.el
index d9a48cfcf2d..c382d0ad2a0 100644
--- a/lisp/isearch.el
+++ b/lisp/isearch.el
@@ -521,14 +521,14 @@ This is like `describe-bindings', but displays only Isearch keys."
(interactive)
(let ((display-buffer-overriding-action isearch--display-help-action))
(call-interactively 'describe-key))
- (isearch-update))
+ (when isearch-mode (isearch-update)))
(defun isearch-describe-mode ()
"Display documentation of Isearch mode."
(interactive)
(let ((display-buffer-overriding-action isearch--display-help-action))
(describe-function 'isearch-forward))
- (isearch-update))
+ (when isearch-mode (isearch-update)))
(defalias 'isearch-mode-help 'isearch-describe-mode)