]> git.eshelyaron.com Git - emacs.git/commitdiff
* lisp/help.el (help--analyze-key): Avoid mouse-set-point for non-mouse events
authorJuri Linkov <juri@linkov.net>
Wed, 13 Oct 2021 19:17:27 +0000 (22:17 +0300)
committerJuri Linkov <juri@linkov.net>
Wed, 13 Oct 2021 19:17:27 +0000 (22:17 +0300)
(bug#51173)

lisp/help.el

index eaca33795aef6c424a0f8d2b4d8d76affad0162f..7e2e492a368a85cbf6bf5db97b8b39b0df76a1ed 100644 (file)
@@ -695,11 +695,13 @@ Returns a list of the form (BRIEF-DESC DEFN EVENT MOUSE-MSG)."
         (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 `mouse-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, it defaults to window-point.
-        (defn (save-excursion (mouse-set-point event) (key-binding key t))))
+         ;; When no mouse was involved, don't use `mouse-set-point'.
+         (defn (if (consp event)
+                   (save-excursion (mouse-set-point event) (key-binding key t))
+                 (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))))