diff options
| -rw-r--r-- | lisp/ChangeLog | 9 | ||||
| -rw-r--r-- | lisp/bindings.el | 25 |
2 files changed, 32 insertions, 2 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 8e0853ea612..c57c5aaacff 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog | |||
| @@ -1,3 +1,12 @@ | |||
| 1 | 2007-10-18 Drew Adams <drew.adams@oracle.com> | ||
| 2 | |||
| 3 | * bindings.el (mode-line-minor-mode-keymap): | ||
| 4 | Add mouse-minor-mode-menu on mouse-1. | ||
| 5 | (mode-line-modes): Add mouse-1 to help-echo text. | ||
| 6 | (mouse-minor-mode-menu, minor-mode-menu-from-indicator): | ||
| 7 | New functions. | ||
| 8 | (mode-line-minor-mode-help): Doc fix. | ||
| 9 | |||
| 1 | 2007-10-17 Juri Linkov <juri@jurta.org> | 10 | 2007-10-17 Juri Linkov <juri@jurta.org> |
| 2 | 11 | ||
| 3 | * textmodes/fill.el (fill-paragraph-or-region): Remove function | 12 | * textmodes/fill.el (fill-paragraph-or-region): Remove function |
diff --git a/lisp/bindings.el b/lisp/bindings.el index 2ca7c8afea8..ad7470e07e3 100644 --- a/lisp/bindings.el +++ b/lisp/bindings.el | |||
| @@ -289,6 +289,7 @@ Keymap to display on major mode.") | |||
| 289 | 289 | ||
| 290 | (defvar mode-line-minor-mode-keymap | 290 | (defvar mode-line-minor-mode-keymap |
| 291 | (let ((map (make-sparse-keymap))) | 291 | (let ((map (make-sparse-keymap))) |
| 292 | (define-key map [mode-line down-mouse-1] 'mouse-minor-mode-menu) | ||
| 292 | (define-key map [mode-line mouse-2] 'mode-line-minor-mode-help) | 293 | (define-key map [mode-line mouse-2] 'mode-line-minor-mode-help) |
| 293 | (define-key map [mode-line down-mouse-3] 'mode-line-mode-menu-1) | 294 | (define-key map [mode-line down-mouse-3] 'mode-line-mode-menu-1) |
| 294 | (define-key map [header-line down-mouse-3] 'mode-line-mode-menu-1) | 295 | (define-key map [header-line down-mouse-3] 'mode-line-mode-menu-1) |
| @@ -331,7 +332,7 @@ Keymap to display on minor modes.") | |||
| 331 | '("" mode-line-process) | 332 | '("" mode-line-process) |
| 332 | `(:propertize ("" minor-mode-alist) | 333 | `(:propertize ("" minor-mode-alist) |
| 333 | mouse-face mode-line-highlight | 334 | mouse-face mode-line-highlight |
| 334 | help-echo "mouse-2: minor mode help, mouse-3: toggle minor modes" | 335 | help-echo "mouse-1: minor mode, mouse-2: minor mode help, mouse-3: toggle minor modes" |
| 335 | local-map ,mode-line-minor-mode-keymap) | 336 | local-map ,mode-line-minor-mode-keymap) |
| 336 | (propertize "%n" 'help-echo "mouse-2: widen" | 337 | (propertize "%n" 'help-echo "mouse-2: widen" |
| 337 | 'mouse-face 'mode-line-highlight | 338 | 'mouse-face 'mode-line-highlight |
| @@ -492,8 +493,28 @@ Menu of mode operations in the mode line.") | |||
| 492 | (interactive "@e") | 493 | (interactive "@e") |
| 493 | (x-popup-menu event mode-line-mode-menu)) | 494 | (x-popup-menu event mode-line-mode-menu)) |
| 494 | 495 | ||
| 496 | (defun mouse-minor-mode-menu (event) | ||
| 497 | "Show minor-mode menu for EVENT on minor modes area of the mode line." | ||
| 498 | (interactive "@e") | ||
| 499 | (let ((indicator (car (nth 4 (car (cdr event)))))) | ||
| 500 | (minor-mode-menu-from-indicator indicator))) | ||
| 501 | |||
| 502 | (defun minor-mode-menu-from-indicator (indicator) | ||
| 503 | "Show menu, if any, for minor mode specified by INDICATOR. | ||
| 504 | Interactively, INDICATOR is read using completion." | ||
| 505 | (interactive (list (completing-read "Minor mode indicator: " | ||
| 506 | (describe-minor-mode-completion-table-for-indicator)))) | ||
| 507 | (let ((minor-mode (lookup-minor-mode-from-indicator indicator))) | ||
| 508 | (if minor-mode | ||
| 509 | (let* ((map (cdr-safe (assq minor-mode minor-mode-map-alist))) | ||
| 510 | (menu (and (keymapp map) (lookup-key map [menu-bar])))) | ||
| 511 | (if menu | ||
| 512 | (popup-menu menu) | ||
| 513 | (message "No menu for minor mode `%s'" minor-mode))) | ||
| 514 | (error "Cannot find minor mode for `%s'" indicator)))) | ||
| 515 | |||
| 495 | (defun mode-line-minor-mode-help (event) | 516 | (defun mode-line-minor-mode-help (event) |
| 496 | "Describe minor mode for EVENT occurred on minor modes area of the mode line." | 517 | "Describe minor mode for EVENT on minor modes area of the mode line." |
| 497 | (interactive "@e") | 518 | (interactive "@e") |
| 498 | (let ((indicator (car (nth 4 (car (cdr event)))))) | 519 | (let ((indicator (car (nth 4 (car (cdr event)))))) |
| 499 | (describe-minor-mode-from-indicator indicator))) | 520 | (describe-minor-mode-from-indicator indicator))) |