0
0
mirror of https://github.com/vim/vim.git synced 2025-10-02 05:04:20 -04:00

patch 8.1.1001: Visual area not correct when using 'cursorline'

Problem:    Visual area not correct when using 'cursorline'.
Solution:   Update w_last_cursorline also in Visual mode. (Hirohito Higashi,
            closes #4086)
This commit is contained in:
Bram Moolenaar
2019-03-09 11:46:15 +01:00
parent fd731b0e31
commit 8156ed3755
4 changed files with 43 additions and 7 deletions

View File

@@ -3704,14 +3704,16 @@ win_line(
#endif #endif
#ifdef FEAT_SYN_HL #ifdef FEAT_SYN_HL
/* Cursor line highlighting for 'cursorline' in the current window. Not // Cursor line highlighting for 'cursorline' in the current window.
* when Visual mode is active, because it's not clear what is selected if (wp->w_p_cul && lnum == wp->w_cursor.lnum)
* then. */ {
if (wp->w_p_cul && lnum == wp->w_cursor.lnum // Do not show the cursor line when Visual mode is active, because it's
&& !(wp == curwin && VIsual_active)) // not clear what is selected then. Do update w_last_cursorline.
if (!(wp == curwin && VIsual_active))
{ {
line_attr = HL_ATTR(HLF_CUL); line_attr = HL_ATTR(HLF_CUL);
area_highlighting = TRUE; area_highlighting = TRUE;
}
wp->w_last_cursorline = wp->w_cursor.lnum; wp->w_last_cursorline = wp->w_cursor.lnum;
} }
#endif #endif

View File

@@ -0,0 +1,12 @@
|a+0&#e0e0e08|b|c| | +0&#ffffff0@70
|a+0&#e0e0e08|b|c| | +0&#ffffff0@70
|a+0&#e0e0e08|b|c| | +0&#ffffff0@70
|a+0&#e0e0e08|b|c| | +0&#ffffff0@70
|a+0&#e0e0e08|b|c| | +0&#ffffff0@70
>a|b+0&#e0e0e08|c| | +0&#ffffff0@70
|a|b|c| @71
|a|b|c| @71
|a|b|c| @71
|a|b|c| @71
|a|b|c| @71
|-+2&&@1| |V|I|S|U|A|L| |L|I|N|E| |-@1| +0&&@29|1|2| @7|1|2|,|1| @9|1|5|%|

View File

@@ -552,3 +552,23 @@ func Test_cursorline_after_yank()
call StopVimInTerminal(buf) call StopVimInTerminal(buf)
call delete('Xtest_cursorline_yank') call delete('Xtest_cursorline_yank')
endfunc endfunc
func Test_cursorline_with_visualmode()
if !CanRunVimInTerminal()
return
endif
call writefile([
\ 'set cul',
\ 'call setline(1, repeat(["abc"], 50))',
\ ], 'Xtest_cursorline_with_visualmode')
let buf = RunVimInTerminal('-S Xtest_cursorline_with_visualmode', {'rows': 12})
call term_wait(buf)
call term_sendkeys(buf, "V\<C-f>kkkjk")
call VerifyScreenDump(buf, 'Test_cursorline_with_visualmode_01', {})
" clean up
call StopVimInTerminal(buf)
call delete('Xtest_cursorline_with_visualmode')
endfunc

View File

@@ -779,6 +779,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 */
/**/
1001,
/**/ /**/
1000, 1000,
/**/ /**/