summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/screen.c3
-rw-r--r--src/testdir/test_window_cmd.vim24
-rw-r--r--src/version.c2
3 files changed, 28 insertions, 1 deletions
diff --git a/src/screen.c b/src/screen.c
index bcfaabed1..d1f17b51b 100644
--- a/src/screen.c
+++ b/src/screen.c
@@ -8699,7 +8699,8 @@ screen_fill(
if (row == Rows - 1) /* overwritten the command line */
{
redraw_cmdline = TRUE;
- if (c1 == ' ' && c2 == ' ')
+ if (start_col == 0 && end_col == Columns
+ && c1 == ' ' && c2 == ' ' && attr == 0)
clear_cmdline = FALSE; /* command line has been cleared */
if (start_col == 0)
mode_displayed = FALSE; /* mode cleared or overwritten */
diff --git a/src/testdir/test_window_cmd.vim b/src/testdir/test_window_cmd.vim
index 69b139fe3..296cba2fd 100644
--- a/src/testdir/test_window_cmd.vim
+++ b/src/testdir/test_window_cmd.vim
@@ -483,4 +483,28 @@ func Test_access_freed_mem()
bwipe xxx
endfunc
+func Test_visual_cleared_after_window_split()
+ new | only!
+ let smd_save = &showmode
+ set showmode
+ let ls_save = &laststatus
+ set laststatus=1
+ call setline(1, ['a', 'b', 'c', 'd', ''])
+ norm! G
+ exe "norm! kkvk"
+ redraw
+ exe "norm! \<C-W>v"
+ redraw
+ " check if '-- VISUAL --' disappeared from command line
+ let columns = range(1, &columns)
+ let cmdlinechars = map(columns, 'nr2char(screenchar(&lines, v:val))')
+ let cmdline = join(cmdlinechars, '')
+ let cmdline_ltrim = substitute(cmdline, '^\s*', "", "")
+ let mode_shown = substitute(cmdline_ltrim, '\s*$', "", "")
+ call assert_equal('', mode_shown)
+ let &showmode = smd_save
+ let &laststatus = ls_save
+ bwipe!
+endfunc
+
" vim: shiftwidth=2 sts=2 expandtab
diff --git a/src/version.c b/src/version.c
index 8d7049d5f..6c3b38ddb 100644
--- a/src/version.c
+++ b/src/version.c
@@ -763,6 +763,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1705,
+/**/
1704,
/**/
1703,