aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEli Zaretskii2013-10-19 11:35:51 +0300
committerEli Zaretskii2013-10-19 11:35:51 +0300
commit58ce0cfc088b4c0fb59383ce8dd4259b072a4baf (patch)
tree0a8949b84a5a7776b1d8c11225e38933a2afd913
parent50e28e7d3ea63ce103c6de6cda1b9c1684d9359b (diff)
downloademacs-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/ChangeLog9
-rw-r--r--lisp/menu-bar.el40
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 @@
12013-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
12013-10-19 Jan Djärv <jan.h.d@swipnet.se> 102013-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.")