# HG changeset patch # User Chong Yidong # Date 1174493905 0 # Node ID ec11e047c06e6fb38f624937d4efe5ef37667b5a # Parent 4a84a019a748bd971c7ace361649444c55ead570 (viper-non-hook-settings): Handle mouse clicks in describe-key and describe-key-briefly advice a little better. diff -r 4a84a019a748 -r ec11e047c06e lisp/emulation/viper.el --- a/lisp/emulation/viper.el Wed Mar 21 16:18:16 2007 +0000 +++ b/lisp/emulation/viper.el Wed Mar 21 16:18:25 2007 +0000 @@ -1027,14 +1027,46 @@ (defadvice describe-key (before viper-describe-key-ad protect activate) "Force to read key via `viper-read-key-sequence'." - (interactive (list (viper-read-key-sequence "Describe key: ")) - )) + (interactive (let (key) + (setq key (viper-read-key-sequence + "Describe key (or click or menu item): ")) + (list key + (prefix-numeric-value current-prefix-arg) + ;; If KEY is a down-event, read also the + ;; corresponding up-event. + (and (vectorp key) + (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))) + ;; For the C-down-mouse-2 popup + ;; menu, there is no subsequent up-event. + (= (length key) 1)) + (and (> (length key) 1) + (eventp (aref key 1)) + (memq 'down (event-modifiers (aref key 1))))) + (read-event)))))) (defadvice describe-key-briefly (before viper-describe-key-briefly-ad protect activate) "Force to read key via `viper-read-key-sequence'." - (interactive (list (viper-read-key-sequence "Describe key briefly: ")))) - + (interactive (let (key) + (setq key (viper-read-key-sequence + "Describe key (or click or menu item): ")) + ;; If KEY is a down-event, read and discard the + ;; corresponding up-event. + (and (vectorp key) + (let ((last-idx (1- (length key)))) + (and (eventp (aref key last-idx)) + (memq 'down (event-modifiers (aref key last-idx))))) + (read-event)) + (list key + (if current-prefix-arg + (prefix-numeric-value current-prefix-arg)) + 1)))) (defadvice find-file (before viper-add-suffix-advice activate) "Use `read-file-name' for reading arguments."