Mercurial > emacs
diff lisp/mouse.el @ 91058:4b09bb044f38
Merge from emacs--devo--0
Patches applied:
* emacs--devo--0 (patch 899-900)
- Update from CVS
- Merge from emacs--rel--22
* emacs--rel--22 (patch 129-130)
- Update from CVS
- Merge from gnus--rel--5.10
* gnus--rel--5.10 (patch 259-260)
- Merge from emacs--rel--22
- Update from CVS
Revision: emacs@sv.gnu.org/emacs--unicode--0--patch-272
author | Miles Bader <miles@gnu.org> |
---|---|
date | Sat, 20 Oct 2007 02:22:59 +0000 |
parents | 424b655804ca 1921151f9249 |
children | 2fcaae6177a5 |
line wrap: on
line diff
--- a/lisp/mouse.el Fri Oct 19 00:03:33 2007 +0000 +++ b/lisp/mouse.el Sat Oct 20 02:22:59 2007 +0000 @@ -151,6 +151,26 @@ ;; mouse-major-mode-menu was using `command-execute' instead. (call-interactively cmd)))) +(defun minor-mode-menu-from-indicator (indicator) + "Show menu, if any, for minor mode specified by INDICATOR. +Interactively, INDICATOR is read using completion." + (interactive (list (completing-read "Minor mode indicator: " + (describe-minor-mode-completion-table-for-indicator)))) + (let ((minor-mode (lookup-minor-mode-from-indicator indicator))) + (if minor-mode + (let* ((map (cdr-safe (assq minor-mode minor-mode-map-alist))) + (menu (and (keymapp map) (lookup-key map [menu-bar])))) + (if menu + (popup-menu menu) + (message "No menu for minor mode `%s'" minor-mode))) + (error "Cannot find minor mode for `%s'" indicator)))) + +(defun mouse-minor-mode-menu (event) + "Show minor-mode menu for EVENT on minor modes area of the mode line." + (interactive "@e") + (let ((indicator (car (nth 4 (car (cdr event)))))) + (minor-mode-menu-from-indicator indicator))) + (defvar mouse-major-mode-menu-prefix) ; dynamically bound (defun mouse-major-mode-menu (event &optional prefix)