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:
@@ -1,5 +1,7 @@
|
|||||||
" Tests for window cmd (:wincmd, :split, :vsplit, :resize and etc...)
|
" Tests for window cmd (:wincmd, :split, :vsplit, :resize and etc...)
|
||||||
|
|
||||||
|
so check.vim
|
||||||
|
|
||||||
func Test_window_cmd_ls0_with_split()
|
func Test_window_cmd_ls0_with_split()
|
||||||
set ls=0
|
set ls=0
|
||||||
set splitbelow
|
set splitbelow
|
||||||
@@ -557,6 +559,33 @@ func Test_access_freed_mem()
|
|||||||
call assert_equal(&columns, winwidth(0))
|
call assert_equal(&columns, winwidth(0))
|
||||||
endfunc
|
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()
|
func Test_visual_cleared_after_window_split()
|
||||||
new | only!
|
new | only!
|
||||||
let smd_save = &showmode
|
let smd_save = &showmode
|
||||||
|
@@ -753,6 +753,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
2121,
|
||||||
/**/
|
/**/
|
||||||
2120,
|
2120,
|
||||||
/**/
|
/**/
|
||||||
|
@@ -4654,6 +4654,9 @@ win_enter_ext(
|
|||||||
maketitle();
|
maketitle();
|
||||||
#endif
|
#endif
|
||||||
curwin->w_redr_status = TRUE;
|
curwin->w_redr_status = TRUE;
|
||||||
|
if (bt_terminal(wp->w_buffer))
|
||||||
|
// terminal is likely in another mode
|
||||||
|
redraw_mode = TRUE;
|
||||||
redraw_tabline = TRUE;
|
redraw_tabline = TRUE;
|
||||||
if (restart_edit)
|
if (restart_edit)
|
||||||
redraw_later(VALID); /* causes status line redraw */
|
redraw_later(VALID); /* causes status line redraw */
|
||||||
|
Reference in New Issue
Block a user