Commit e96f7bf1 authored by Eli Zaretskii's avatar Eli Zaretskii
Browse files

Fix bug #16479 with client connections while TTY menu is open.

 src/term.c (read_menu_input): If the selected frame changes, exit
 the menu.
 (tty_menu_show): If the selected frame changes while we displayed
 a menu, throw to top level.
parent caece7c3
2014-01-25 Eli Zaretskii <eliz@gnu.org>
* term.c (read_menu_input): If the selected frame changes, exit
the menu.
(tty_menu_show): If the selected frame changes while we displayed
a menu, throw to top level. (Bug#16479)
2014-01-25 Stefan Monnier <monnier@iro.umontreal.ca>
* eval.c (Fsignal): Fix `debug' handling to match 2013-10-03 change.
......
......@@ -3124,7 +3124,11 @@ read_menu_input (struct frame *sf, int *x, int *y, int min_y, int max_y,
tty->showing_menu = 0;
do_mouse_tracking = saved_mouse_tracking;
if (EQ (cmd, Qt) || EQ (cmd, Qtty_menu_exit))
if (EQ (cmd, Qt) || EQ (cmd, Qtty_menu_exit)
/* If some input switched frames under our feet, exit the
menu, since the menu faces are no longer valid, and the
menu is no longer relevant anyway. */
|| sf != SELECTED_FRAME ())
return MI_QUIT_MENU;
if (EQ (cmd, Qtty_menu_mouse_movement))
mouse_get_xy (x, y);
......@@ -3791,6 +3795,11 @@ tty_menu_show (struct frame *f, int x, int y, bool for_click, bool keymaps,
case TTYM_IA_SELECT:
break;
case TTYM_NO_SELECT:
/* If the selected frame was changed while we displayed a menu,
throw to top level in order to undo any temporary settings
made by TTY menu code. */
if (f != SELECTED_FRAME ())
Ftop_level ();
/* Make "Cancel" equivalent to C-g unless FOR_CLICK (which means
the menu was invoked with a mouse event as POSITION). */
if (! for_click)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment