diff options
author | Noam Postavsky <npostavs@gmail.com> | 2017-06-18 00:39:05 -0400 |
---|---|---|
committer | Noam Postavsky <npostavs@gmail.com> | 2017-07-01 09:40:29 -0400 |
commit | e620bbe38ed5e3e2a77f01eac2814c01dfa41c2d (patch) | |
tree | 410c3f1fea63b0b88b981674eb35c504d8853f4a /lisp/help.el | |
parent | 2bd32ede1ce05b88278bab15f6cc603c97a1fb2f (diff) | |
download | emacs-e620bbe38ed5e3e2a77f01eac2814c01dfa41c2d.tar.gz |
Ignore mouse-movement for describe-key-briefly (Bug#12204)
* lisp/help.el (help-read-key-sequence): Add optional argument ot
ignore `mouse-movement' events.
(describe-key-briefly): Use it.
* doc/emacs/help.texi (Key Help):
* etc/NEWS: Mention that mouse movement is ignored.
Diffstat (limited to 'lisp/help.el')
-rw-r--r-- | lisp/help.el | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/lisp/help.el b/lisp/help.el index 78687a9e8a8..0fb1c2dab77 100644 --- a/lisp/help.el +++ b/lisp/help.el @@ -636,7 +636,9 @@ the last key hit are used. If KEY is a menu item or a tool-bar button that is disabled, this command temporarily enables it to allow getting help on disabled items and buttons." (interactive - (pcase-let ((`(,key ,_up-event) (help-read-key-sequence))) + ;; Ignore mouse movement events because it's too easy to miss the + ;; message while moving the mouse. + (pcase-let ((`(,key ,_up-event) (help-read-key-sequence 'no-mouse-movement))) `(,key ,current-prefix-arg 1))) (princ (car (help--analyze-key key untranslated)) (if insert (current-buffer) standard-output))) @@ -704,11 +706,13 @@ function `key-binding'." (throw 'found x)))) nil))))) -(defun help-read-key-sequence () +(defun help-read-key-sequence (&optional no-mouse-movement) "Reads a key sequence from the user. Returns a list of the form (KEY UP-EVENT), where KEY is the key sequence, and UP-EVENT is the up-event that was discarded by -reading KEY, or nil." +reading KEY, or nil. +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) saved-yank-menu) @@ -724,9 +728,11 @@ reading KEY, or nil." Describe the following key, mouse click, or menu item: ")) ((and (pred vectorp) (let `(,key0 . ,_) (aref key 0)) (guard (symbolp key0)) (let keyname (symbol-name key0))) - (and (string-match "\\(mouse\\|down\\|click\\|drag\\)" - keyname) - (not (sit-for (/ double-click-time 1000.0) t)))))) + (if no-mouse-movement + (string-match "mouse-movement" keyname) + (and (string-match "\\(mouse\\|down\\|click\\|drag\\)" + keyname) + (not (sit-for (/ double-click-time 1000.0) t))))))) (list key ;; If KEY is a down-event, read and include the |