diff options
author | Olaf Rogalsky <olaf.rogalsky@t-online.de> | 2017-11-11 11:05:53 +0200 |
---|---|---|
committer | Eli Zaretskii <eliz@gnu.org> | 2017-11-11 11:05:53 +0200 |
commit | 44340b475f942cd65788ef9a4e75190a3646c444 (patch) | |
tree | 0f96ae00d20c6aaf66c73174589d7cb665acc1bd /lisp/help.el | |
parent | 05aa6d4a68c036602f253fb27c3ca8995533b4c7 (diff) | |
download | emacs-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.el | 16 |
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)) |