From: Alan Mackenzie Date: Fri, 19 Feb 2016 17:10:57 +0000 (+0000) Subject: Await the final mouse event in C-h c and C-h k. X-Git-Tag: emacs-26.0.90~2531 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=10c0e1ca40237224aa229c538fe49983ec905748;p=emacs.git Await the final mouse event in C-h c and C-h k. * lisp/help.el (describe-key-briefly, describe-key): On receiving a mouse event, keep reading further events until a timeout occurs, to ensure we have the complete mouse event from the user. --- diff --git a/lisp/help.el b/lisp/help.el index 061daacfdd3..ce68cea6dd5 100644 --- a/lisp/help.el +++ b/lisp/help.el @@ -613,7 +613,15 @@ temporarily enables it to allow getting help on disabled items and buttons." (when (null (cdr yank-menu)) (setq saved-yank-menu (copy-sequence yank-menu)) (menu-bar-update-yank-menu "(any string)" nil)) - (setq key (read-key-sequence "Describe key (or click or menu item): ")) + (while + (progn + (setq key (read-key-sequence "Describe key (or click or menu item): ")) + (and (vectorp key) + (consp (aref key 0)) + (symbolp (car (aref key 0))) + (string-match "\\(mouse\\|down\\|click\\|drag\\)" + (symbol-name (car (aref key 0)))) + (not (sit-for (/ double-click-time 1000.0) t))))) ;; Clear the echo area message (Bug#7014). (message nil) ;; If KEY is a down-event, read and discard the @@ -750,7 +758,15 @@ temporarily enables it to allow getting help on disabled items and buttons." (when (null (cdr yank-menu)) (setq saved-yank-menu (copy-sequence yank-menu)) (menu-bar-update-yank-menu "(any string)" nil)) - (setq key (read-key-sequence "Describe key (or click or menu item): ")) + (while + (progn + (setq key (read-key-sequence "Describe key (or click or menu item): ")) + (and (vectorp key) + (consp (aref key 0)) + (symbolp (car (aref key 0))) + (string-match "\\(mouse\\|down\\|click\\|drag\\)" + (symbol-name (car (aref key 0)))) + (not (sit-for (/ double-click-time 1000.0) t))))) (list key (prefix-numeric-value current-prefix-arg)