summaryrefslogtreecommitdiff
path: root/lisp
diff options
context:
space:
mode:
Diffstat (limited to 'lisp')
-rw-r--r--lisp/help.el8
1 files changed, 7 insertions, 1 deletions
diff --git a/lisp/help.el b/lisp/help.el
index 92e22aecb5b..d22f50de8ab 100644
--- a/lisp/help.el
+++ b/lisp/help.el
@@ -701,7 +701,13 @@ in the selected window."
;; 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 buffer (key-binding key t)
+ (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))))))
+ (key-binding key t)
(save-excursion (mouse-set-point event) (key-binding key t)))))
;; Handle the case where we faked an entry in "Select and Paste" menu.
(when (and (eq defn nil)