1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2025-01-05 11:45:45 +00:00

Preserve current buffer when popping up TTY menus

* src/term.c (tty_menu_show): Be sure to save and restore the
current buffer around TTY menu pop-ups.  (Bug#23101)
This commit is contained in:
Eli Zaretskii 2016-03-24 20:05:49 +02:00
parent 7eba90c122
commit 20a1003f6d

View File

@ -3402,9 +3402,11 @@ static void
tty_pop_down_menu (Lisp_Object arg)
{
tty_menu *menu = XSAVE_POINTER (arg, 0);
struct buffer *orig_buffer = XSAVE_POINTER (arg, 1);
block_input ();
tty_menu_destroy (menu);
set_buffer_internal (orig_buffer);
unblock_input ();
}
@ -3683,7 +3685,10 @@ tty_menu_show (struct frame *f, int x, int y, int menuflags,
pane = selidx = 0;
record_unwind_protect (tty_pop_down_menu, make_save_ptr (menu));
/* We save and restore the current buffer because tty_menu_activate
triggers redisplay, which switches buffers at will. */
record_unwind_protect (tty_pop_down_menu,
make_save_ptr_ptr (menu, current_buffer));
specbind (Qoverriding_terminal_local_map,
Fsymbol_value (Qtty_menu_navigation_map));