summaryrefslogtreecommitdiff
path: root/lisp/help.el
diff options
context:
space:
mode:
authorOlaf Rogalsky <olaf.rogalsky@t-online.de>2017-11-11 11:05:53 +0200
committerEli Zaretskii <eliz@gnu.org>2017-11-11 11:05:53 +0200
commit44340b475f942cd65788ef9a4e75190a3646c444 (patch)
tree0f96ae00d20c6aaf66c73174589d7cb665acc1bd /lisp/help.el
parent05aa6d4a68c036602f253fb27c3ca8995533b4c7 (diff)
downloademacs-44340b475f942cd65788ef9a4e75190a3646c444.tar.gz
Fix "C-h k" in xterm-mouse-mode
* lisp/help.el (help-read-key-sequence): Support "C-h k" for xterm-mouse-mode by calling read-key-sequence-vector instead of read-event. (Bug#29150)
Diffstat (limited to 'lisp/help.el')
-rw-r--r--lisp/help.el16
1 files changed, 10 insertions, 6 deletions
diff --git a/lisp/help.el b/lisp/help.el
index bc8035db0ea..fbb9fc8cbe6 100644
--- a/lisp/help.el
+++ b/lisp/help.el
@@ -717,7 +717,7 @@ with `mouse-movement' events."
(cursor-in-echo-area t)
saved-yank-menu)
(unwind-protect
- (let (key)
+ (let (key down-ev)
;; If yank-menu is empty, populate it temporarily, so that
;; "Select and Paste" menu can generate a complete event.
(when (null (cdr yank-menu))
@@ -743,17 +743,21 @@ Describe the following key, mouse click, or menu item: "))
(let ((last-idx (1- (length key))))
(and (eventp (aref key last-idx))
(memq 'down (event-modifiers (aref key last-idx)))))
- (or (and (eventp (aref key 0))
- (memq 'down (event-modifiers (aref key 0)))
+ (or (and (eventp (setq down-ev (aref key 0)))
+ (memq 'down (event-modifiers down-ev))
;; However, for the C-down-mouse-2 popup
;; menu, there is no subsequent up-event. In
;; this case, the up-event is the next
;; element in the supplied vector.
(= (length key) 1))
(and (> (length key) 1)
- (eventp (aref key 1))
- (memq 'down (event-modifiers (aref key 1)))))
- (read-event))))
+ (eventp (setq down-ev (aref key 1)))
+ (memq 'down (event-modifiers down-ev))))
+ (if (and (terminal-parameter nil 'xterm-mouse-mode)
+ (equal (terminal-parameter nil 'xterm-mouse-last-down)
+ down-ev))
+ (aref (read-key-sequence-vector nil) 0)
+ (read-event)))))
;; Put yank-menu back as it was, if we changed it.
(when saved-yank-menu
(setq yank-menu (copy-sequence saved-yank-menu))