0
0
mirror of https://github.com/vim/vim.git synced 2025-09-25 03:54:15 -04:00

patch 8.1.2121: mode is not updated when switching to terminal

Problem:    Mode is not updated when switching to terminal in Insert mode.
Solution:   Redraw the mode when entering a terminal window. (Jason Franklin)
This commit is contained in:
Bram Moolenaar
2019-10-07 22:27:36 +02:00
parent 1614a14901
commit a27e1dcddc
3 changed files with 34 additions and 0 deletions

View File

@@ -1,5 +1,7 @@
" Tests for window cmd (:wincmd, :split, :vsplit, :resize and etc...)
so check.vim
func Test_window_cmd_ls0_with_split()
set ls=0
set splitbelow
@@ -557,6 +559,33 @@ func Test_access_freed_mem()
call assert_equal(&columns, winwidth(0))
endfunc
func Test_insert_cleared_on_switch_to_term()
CheckFeature terminal
set showmode
terminal
wincmd p
call feedkeys("i\<C-O>", 'ntx')
redraw
" The "-- (insert) --" indicator should be visible.
let chars = map(range(1, &columns), 'nr2char(screenchar(&lines, v:val))')
let str = trim(join(chars, ''))
call assert_equal('-- (insert) --', str)
call feedkeys("\<C-W>p", 'ntx')
redraw
" The "-- (insert) --" indicator should have been cleared.
let chars = map(range(1, &columns), 'nr2char(screenchar(&lines, v:val))')
let str = trim(join(chars, ''))
call assert_equal('', str)
set showmode&
%bw!
endfunc
func Test_visual_cleared_after_window_split()
new | only!
let smd_save = &showmode

View File

@@ -753,6 +753,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
2121,
/**/
2120,
/**/

View File

@@ -4654,6 +4654,9 @@ win_enter_ext(
maketitle();
#endif
curwin->w_redr_status = TRUE;
if (bt_terminal(wp->w_buffer))
// terminal is likely in another mode
redraw_mode = TRUE;
redraw_tabline = TRUE;
if (restart_edit)
redraw_later(VALID); /* causes status line redraw */