summaryrefslogtreecommitdiff
path: root/lisp/help.el
diff options
context:
space:
mode:
Diffstat (limited to 'lisp/help.el')
-rw-r--r--lisp/help.el13
1 files changed, 11 insertions, 2 deletions
diff --git a/lisp/help.el b/lisp/help.el
index 2b7eca9363e..42ff3755650 100644
--- a/lisp/help.el
+++ b/lisp/help.el
@@ -745,6 +745,7 @@ If NO-MOUSE-MOVEMENT is non-nil, ignore key sequences starting
with `mouse-movement' events."
(let ((enable-disabled-menus-and-buttons t)
(cursor-in-echo-area t)
+ (side-event nil)
saved-yank-menu)
(unwind-protect
(let (last-modifiers key-list)
@@ -763,7 +764,8 @@ with `mouse-movement' events."
(and (memq 'click last-modifiers)
(not (sit-for (/ double-click-time 1000.0) t))))
(let* ((seq (read-key-sequence "\
-Describe the following key, mouse click, or menu item: "))
+Describe the following key, mouse click, or menu item: "
+ nil nil 'can-return-switch-frame))
(raw-seq (this-single-command-raw-keys))
(keyn (when (> (length seq) 0)
(aref seq (1- (length seq)))))
@@ -772,11 +774,18 @@ Describe the following key, mouse click, or menu item: "))
(cond
((zerop (length seq))) ;FIXME: Can this happen?
((and no-mouse-movement (eq base 'mouse-movement)) nil)
+ ((memq base '(mouse-movement switch-frame select-window))
+ ;; Mostly ignore these events since it's sometimes difficult to
+ ;; generate the event you care about without also generating
+ ;; these side-events along the way.
+ (setq side-event (cons seq raw-seq)))
((eq base 'help-echo) nil)
(t
(setq last-modifiers modifiers)
(push (cons seq raw-seq) key-list)))))
- (nreverse key-list))
+ (if side-event
+ (cons side-event (nreverse key-list))
+ (nreverse key-list)))
;; Put yank-menu back as it was, if we changed it.
(when saved-yank-menu
(setq yank-menu (copy-sequence saved-yank-menu))