* 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).
This commit is contained in:
Juri Linkov 2021-12-01 19:36:00 +02:00
parent 740ae2818f
commit 8230a47ecc
2 changed files with 7 additions and 11 deletions

View file

@ -697,18 +697,14 @@ in the selected window."
(mouse-msg (if (or (memq 'click modifiers) (memq 'down modifiers) (mouse-msg (if (or (memq 'click modifiers) (memq 'down modifiers)
(memq 'drag modifiers)) (memq 'drag modifiers))
" at that spot" "")) " 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 ;; is selected from the context menu that should describe KEY
;; at the position of mouse click that opened the context menu. ;; at the position of mouse click that opened the context menu.
;; When no mouse was involved, don't use `mouse-set-point'. ;; When no mouse was involved, don't use `posn-set-point'.
(defn (if (or buffer (defn (if 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))))))
(key-binding key t) (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. ;; Handle the case where we faked an entry in "Select and Paste" menu.
(when (and (eq defn nil) (when (and (eq defn nil)
(stringp (aref key (1- (length key)))) (stringp (aref key (1- (length key))))

View file

@ -521,14 +521,14 @@ This is like `describe-bindings', but displays only Isearch keys."
(interactive) (interactive)
(let ((display-buffer-overriding-action isearch--display-help-action)) (let ((display-buffer-overriding-action isearch--display-help-action))
(call-interactively 'describe-key)) (call-interactively 'describe-key))
(isearch-update)) (when isearch-mode (isearch-update)))
(defun isearch-describe-mode () (defun isearch-describe-mode ()
"Display documentation of Isearch mode." "Display documentation of Isearch mode."
(interactive) (interactive)
(let ((display-buffer-overriding-action isearch--display-help-action)) (let ((display-buffer-overriding-action isearch--display-help-action))
(describe-function 'isearch-forward)) (describe-function 'isearch-forward))
(isearch-update)) (when isearch-mode (isearch-update)))
(defalias 'isearch-mode-help 'isearch-describe-mode) (defalias 'isearch-mode-help 'isearch-describe-mode)