diff options
| author | Eli Zaretskii | 2013-10-19 11:35:51 +0300 |
|---|---|---|
| committer | Eli Zaretskii | 2013-10-19 11:35:51 +0300 |
| commit | 58ce0cfc088b4c0fb59383ce8dd4259b072a4baf (patch) | |
| tree | 0a8949b84a5a7776b1d8c11225e38933a2afd913 | |
| parent | 50e28e7d3ea63ce103c6de6cda1b9c1684d9359b (diff) | |
| download | emacs-58ce0cfc088b4c0fb59383ce8dd4259b072a4baf.tar.gz emacs-58ce0cfc088b4c0fb59383ce8dd4259b072a4baf.zip | |
Fix TTY menus when they lead to a minibuffer prompt.
lisp/menu-bar.el (tty-menu-navigation-map): Bind mouse-N to perform
TTY menu actions and down-mouse-N to tty-menu-ignore. This solves
the problem whereby selecting a menu item that leads to a
minibuffer prompt moves the cursor out of the minibuffer window,
making it hard to type at the prompt. Suggested by Stefan Monnier
<monnier@iro.umontreal.ca>.
| -rw-r--r-- | lisp/ChangeLog | 9 | ||||
| -rw-r--r-- | lisp/menu-bar.el | 40 |
2 files changed, 30 insertions, 19 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index a378b6f417b..883b5d7b21e 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog | |||
| @@ -1,3 +1,12 @@ | |||
| 1 | 2013-10-19 Eli Zaretskii <eliz@gnu.org> | ||
| 2 | |||
| 3 | * menu-bar.el (tty-menu-navigation-map): Bind mouse-N to perform | ||
| 4 | TTY menu actions and down-mouse-N to tty-menu-ignore. This solves | ||
| 5 | the problem whereby selecting a menu item that leads to a | ||
| 6 | minibuffer prompt moves the cursor out of the minibuffer window, | ||
| 7 | making it hard to type at the prompt. Suggested by Stefan Monnier | ||
| 8 | <monnier@iro.umontreal.ca>. | ||
| 9 | |||
| 1 | 2013-10-19 Jan Djärv <jan.h.d@swipnet.se> | 10 | 2013-10-19 Jan Djärv <jan.h.d@swipnet.se> |
| 2 | 11 | ||
| 3 | * menu-bar.el: Don't make Services menu. | 12 | * menu-bar.el: Don't make Services menu. |
diff --git a/lisp/menu-bar.el b/lisp/menu-bar.el index 8a4821164a5..da80db00910 100644 --- a/lisp/menu-bar.el +++ b/lisp/menu-bar.el | |||
| @@ -2337,36 +2337,38 @@ If FRAME is nil or not given, use the selected frame." | |||
| 2337 | (define-key map [?\C-j] 'tty-menu-select) | 2337 | (define-key map [?\C-j] 'tty-menu-select) |
| 2338 | (define-key map [return] 'tty-menu-select) | 2338 | (define-key map [return] 'tty-menu-select) |
| 2339 | (define-key map [linefeed] 'tty-menu-select) | 2339 | (define-key map [linefeed] 'tty-menu-select) |
| 2340 | (define-key map [down-mouse-1] 'tty-menu-select) | 2340 | (define-key map [mouse-1] 'tty-menu-select) |
| 2341 | (define-key map [drag-mouse-1] 'tty-menu-select) | 2341 | (define-key map [drag-mouse-1] 'tty-menu-select) |
| 2342 | (define-key map [mouse-2] 'tty-menu-select) | ||
| 2343 | (define-key map [drag-mouse-2] 'tty-menu-select) | ||
| 2344 | (define-key map [mouse-3] 'tty-menu-select) | ||
| 2345 | (define-key map [drag-mouse-3] 'tty-menu-select) | ||
| 2342 | (define-key map [wheel-down] 'tty-menu-next-item) | 2346 | (define-key map [wheel-down] 'tty-menu-next-item) |
| 2343 | (define-key map [wheel-up] 'tty-menu-prev-item) | 2347 | (define-key map [wheel-up] 'tty-menu-prev-item) |
| 2344 | (define-key map [wheel-left] 'tty-menu-prev-menu) | 2348 | (define-key map [wheel-left] 'tty-menu-prev-menu) |
| 2345 | (define-key map [wheel-right] 'tty-menu-next-menu) | 2349 | (define-key map [wheel-right] 'tty-menu-next-menu) |
| 2346 | ;; The following 4 bindings are for those whose text-mode mouse | 2350 | ;; The following 4 bindings are for those whose text-mode mouse |
| 2347 | ;; lack the wheel. | 2351 | ;; lack the wheel. |
| 2348 | (define-key map [S-down-mouse-1] 'tty-menu-next-item) | 2352 | (define-key map [S-mouse-1] 'tty-menu-next-item) |
| 2349 | (define-key map [S-drag-mouse-1] 'tty-menu-next-item) | 2353 | (define-key map [S-drag-mouse-1] 'tty-menu-next-item) |
| 2350 | (define-key map [S-down-mouse-2] 'tty-menu-prev-item) | 2354 | (define-key map [S-mouse-2] 'tty-menu-prev-item) |
| 2351 | (define-key map [S-drag-mouse-2] 'tty-menu-prev-item) | 2355 | (define-key map [S-drag-mouse-2] 'tty-menu-prev-item) |
| 2352 | (define-key map [mode-line drag-mouse-1] 'tty-menu-select) | 2356 | (define-key map [S-mouse-3] 'tty-menu-prev-item) |
| 2353 | (define-key map [mode-line down-mouse-1] 'tty-menu-select) | 2357 | (define-key map [S-drag-mouse-3] 'tty-menu-prev-item) |
| 2354 | (define-key map [header-line mouse-1] 'tty-menu-select) | 2358 | (define-key map [header-line mouse-1] 'tty-menu-select) |
| 2355 | (define-key map [header-line drag-mouse-1] 'tty-menu-select) | 2359 | (define-key map [header-line drag-mouse-1] 'tty-menu-select) |
| 2356 | (define-key map [header-line down-mouse-1] 'tty-menu-select) | 2360 | ;; The down-mouse events must be bound to tty-menu-ignore, so that |
| 2357 | ;; The mouse events must be bound to tty-menu-ignore, otherwise | 2361 | ;; only releasing the mouse button pops up the menu. |
| 2358 | ;; the initial mouse click will select and immediately pop down | 2362 | (define-key map [mode-line down-mouse-1] 'tty-menu-ignore) |
| 2359 | ;; the menu. | 2363 | (define-key map [mode-line down-mouse-2] 'tty-menu-ignore) |
| 2360 | (define-key map [mode-line mouse-1] 'tty-menu-ignore) | 2364 | (define-key map [mode-line down-mouse-3] 'tty-menu-ignore) |
| 2361 | (define-key map [mode-line mouse-2] 'tty-menu-ignore) | 2365 | (define-key map [mode-line C-down-mouse-1] 'tty-menu-ignore) |
| 2362 | (define-key map [mode-line mouse-3] 'tty-menu-ignore) | 2366 | (define-key map [mode-line C-down-mouse-2] 'tty-menu-ignore) |
| 2363 | (define-key map [mode-line C-mouse-1] 'tty-menu-ignore) | 2367 | (define-key map [mode-line C-down-mouse-3] 'tty-menu-ignore) |
| 2364 | (define-key map [mode-line C-mouse-2] 'tty-menu-ignore) | 2368 | (define-key map [down-mouse-1] 'tty-menu-ignore) |
| 2365 | (define-key map [mode-line C-mouse-3] 'tty-menu-ignore) | 2369 | (define-key map [C-down-mouse-1] 'tty-menu-ignore) |
| 2366 | (define-key map [mouse-1] 'tty-menu-ignore) | 2370 | (define-key map [C-down-mouse-2] 'tty-menu-ignore) |
| 2367 | (define-key map [C-mouse-1] 'tty-menu-ignore) | 2371 | (define-key map [C-down-mouse-3] 'tty-menu-ignore) |
| 2368 | (define-key map [C-mouse-2] 'tty-menu-ignore) | ||
| 2369 | (define-key map [C-mouse-3] 'tty-menu-ignore) | ||
| 2370 | (define-key map [mouse-movement] 'tty-menu-mouse-movement) | 2372 | (define-key map [mouse-movement] 'tty-menu-mouse-movement) |
| 2371 | map) | 2373 | map) |
| 2372 | "Keymap used while processing TTY menus.") | 2374 | "Keymap used while processing TTY menus.") |