Mercurial > emacs
comparison lisp/mouse.el @ 105048:1eb4a432a8ae
(minor-mode-menu-from-indicator): Pay attention
to :minor-mode-function (bug#4455).
author | Stefan Monnier <monnier@iro.umontreal.ca> |
---|---|
date | Thu, 17 Sep 2009 01:32:56 +0000 |
parents | 6d93a06037ee |
children | bd2966850aac |
comparison
equal
deleted
inserted
replaced
105047:c65e464f3acc | 105048:1eb4a432a8ae |
---|---|
156 items `Turn Off' and `Help'." | 156 items `Turn Off' and `Help'." |
157 (interactive | 157 (interactive |
158 (list (completing-read | 158 (list (completing-read |
159 "Minor mode indicator: " | 159 "Minor mode indicator: " |
160 (describe-minor-mode-completion-table-for-indicator)))) | 160 (describe-minor-mode-completion-table-for-indicator)))) |
161 (let ((minor-mode (lookup-minor-mode-from-indicator indicator))) | 161 (let* ((minor-mode (lookup-minor-mode-from-indicator indicator)) |
162 (mm-fun (or (get minor-mode :minor-mode-function) minor-mode))) | |
162 (unless minor-mode (error "Cannot find minor mode for `%s'" indicator)) | 163 (unless minor-mode (error "Cannot find minor mode for `%s'" indicator)) |
163 (let* ((map (cdr-safe (assq minor-mode minor-mode-map-alist))) | 164 (let* ((map (cdr-safe (assq minor-mode minor-mode-map-alist))) |
164 (menu (and (keymapp map) (lookup-key map [menu-bar])))) | 165 (menu (and (keymapp map) (lookup-key map [menu-bar])))) |
165 (setq menu | 166 (setq menu |
166 (if menu | 167 (if menu |
167 (mouse-menu-non-singleton menu) | 168 (mouse-menu-non-singleton menu) |
168 `(keymap | 169 `(keymap |
169 ,indicator | 170 ,indicator |
170 (turn-off menu-item "Turn Off minor mode" ,minor-mode) | 171 (turn-off menu-item "Turn Off minor mode" ,mm-fun) |
171 (help menu-item "Help for minor mode" | 172 (help menu-item "Help for minor mode" |
172 (lambda () (interactive) | 173 (lambda () (interactive) |
173 (describe-function ',minor-mode)))))) | 174 (describe-function ',mm-fun)))))) |
174 (popup-menu menu)))) | 175 (popup-menu menu)))) |
175 | 176 |
176 (defun mouse-minor-mode-menu (event) | 177 (defun mouse-minor-mode-menu (event) |
177 "Show minor-mode menu for EVENT on minor modes area of the mode line." | 178 "Show minor-mode menu for EVENT on minor modes area of the mode line." |
178 (interactive "@e") | 179 (interactive "@e") |