aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--doc/emacs/help.texi7
-rw-r--r--etc/NEWS3
-rw-r--r--lisp/help.el18
3 files changed, 19 insertions, 9 deletions
diff --git a/doc/emacs/help.texi b/doc/emacs/help.texi
index 548ca6a1b48..fd6df1c7e53 100644
--- a/doc/emacs/help.texi
+++ b/doc/emacs/help.texi
@@ -203,9 +203,10 @@ string}, which describes exactly what the command does.
203describes the command corresponding to @var{key}. 203describes the command corresponding to @var{key}.
204 204
205 @kbd{C-h c}, @kbd{C-h k} and @kbd{C-h K} work for any sort of key 205 @kbd{C-h c}, @kbd{C-h k} and @kbd{C-h K} work for any sort of key
206sequences, including function keys, menus, and mouse events. For 206sequences, including function keys, menus, and mouse events (except
207instance, after @kbd{C-h k} you can select a menu item from the menu 207that @kbd{C-h c} ignores mouse movement events). For instance, after
208bar, to view the documentation string of the command it runs. 208@kbd{C-h k} you can select a menu item from the menu bar, to view the
209documentation string of the command it runs.
209 210
210@kindex C-h w 211@kindex C-h w
211@findex where-is 212@findex where-is
diff --git a/etc/NEWS b/etc/NEWS
index dc9393c87d4..0ba48f38aed 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -373,6 +373,9 @@ use the local Emacs to edit remote files via Tramp. See the node
373"emacsclient Options" in the user manual for the details. 373"emacsclient Options" in the user manual for the details.
374 374
375+++ 375+++
376** 'describe-key-briefly' now ignores mouse movement events.
377
378+++
376** The new variable 'eval-expression-print-maximum-character' prevents 379** The new variable 'eval-expression-print-maximum-character' prevents
377large integers from being displayed as characters. 380large integers from being displayed as characters.
378 381
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.
636If KEY is a menu item or a tool-bar button that is disabled, this command 636If KEY is a menu item or a tool-bar button that is disabled, this command
637temporarily enables it to allow getting help on disabled items and buttons." 637temporarily enables it to allow getting help on disabled items and buttons."
638 (interactive 638 (interactive
639 (pcase-let ((`(,key ,_up-event) (help-read-key-sequence))) 639 ;; Ignore mouse movement events because it's too easy to miss the
640 ;; message while moving the mouse.
641 (pcase-let ((`(,key ,_up-event) (help-read-key-sequence 'no-mouse-movement)))
640 `(,key ,current-prefix-arg 1))) 642 `(,key ,current-prefix-arg 1)))
641 (princ (car (help--analyze-key key untranslated)) 643 (princ (car (help--analyze-key key untranslated))
642 (if insert (current-buffer) standard-output))) 644 (if insert (current-buffer) standard-output)))
@@ -704,11 +706,13 @@ function `key-binding'."
704 (throw 'found x)))) 706 (throw 'found x))))
705 nil))))) 707 nil)))))
706 708
707(defun help-read-key-sequence () 709(defun help-read-key-sequence (&optional no-mouse-movement)
708 "Reads a key sequence from the user. 710 "Reads a key sequence from the user.
709Returns a list of the form (KEY UP-EVENT), where KEY is the key 711Returns a list of the form (KEY UP-EVENT), where KEY is the key
710sequence, and UP-EVENT is the up-event that was discarded by 712sequence, and UP-EVENT is the up-event that was discarded by
711reading KEY, or nil." 713reading KEY, or nil.
714If NO-MOUSE-MOVEMENT is non-nil, ignore key sequences starting
715with `mouse-movement' events."
712 (let ((enable-disabled-menus-and-buttons t) 716 (let ((enable-disabled-menus-and-buttons t)
713 (cursor-in-echo-area t) 717 (cursor-in-echo-area t)
714 saved-yank-menu) 718 saved-yank-menu)
@@ -724,9 +728,11 @@ reading KEY, or nil."
724Describe the following key, mouse click, or menu item: ")) 728Describe the following key, mouse click, or menu item: "))
725 ((and (pred vectorp) (let `(,key0 . ,_) (aref key 0)) 729 ((and (pred vectorp) (let `(,key0 . ,_) (aref key 0))
726 (guard (symbolp key0)) (let keyname (symbol-name key0))) 730 (guard (symbolp key0)) (let keyname (symbol-name key0)))
727 (and (string-match "\\(mouse\\|down\\|click\\|drag\\)" 731 (if no-mouse-movement
728 keyname) 732 (string-match "mouse-movement" keyname)
729 (not (sit-for (/ double-click-time 1000.0) t)))))) 733 (and (string-match "\\(mouse\\|down\\|click\\|drag\\)"
734 keyname)
735 (not (sit-for (/ double-click-time 1000.0) t)))))))
730 (list 736 (list
731 key 737 key
732 ;; If KEY is a down-event, read and include the 738 ;; If KEY is a down-event, read and include the