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:
parent
7eba90c122
commit
20a1003f6d
1 changed files with 6 additions and 1 deletions
|
@ -3402,9 +3402,11 @@ static void
|
||||||
tty_pop_down_menu (Lisp_Object arg)
|
tty_pop_down_menu (Lisp_Object arg)
|
||||||
{
|
{
|
||||||
tty_menu *menu = XSAVE_POINTER (arg, 0);
|
tty_menu *menu = XSAVE_POINTER (arg, 0);
|
||||||
|
struct buffer *orig_buffer = XSAVE_POINTER (arg, 1);
|
||||||
|
|
||||||
block_input ();
|
block_input ();
|
||||||
tty_menu_destroy (menu);
|
tty_menu_destroy (menu);
|
||||||
|
set_buffer_internal (orig_buffer);
|
||||||
unblock_input ();
|
unblock_input ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3683,7 +3685,10 @@ tty_menu_show (struct frame *f, int x, int y, int menuflags,
|
||||||
|
|
||||||
pane = selidx = 0;
|
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,
|
specbind (Qoverriding_terminal_local_map,
|
||||||
Fsymbol_value (Qtty_menu_navigation_map));
|
Fsymbol_value (Qtty_menu_navigation_map));
|
||||||
|
|
Loading…
Add table
Reference in a new issue