0
0
mirror of https://github.com/vim/vim.git synced 2025-07-26 11:04:33 -04:00

patch 8.1.0849: cursorline highlight is not always updated

Problem:    Cursorline highlight is not always updated.
Solution:   Set w_last_cursorline when redrawing.  Fix resetting cursor flags
            when using the popup menu.
This commit is contained in:
Bram Moolenaar 2019-01-30 21:41:14 +01:00
parent b191be2f00
commit c07ff5c60a
5 changed files with 35 additions and 5 deletions

View File

@ -368,7 +368,7 @@ pum_call_update_screen()
// Update the cursor position to be able to compute the popup menu
// position. The cursor line length may have changed because of the
// inserted completion.
curwin->w_valid &= VALID_CROW|VALID_CHEIGHT;
curwin->w_valid &= ~(VALID_CROW|VALID_CHEIGHT);
validate_cursor();
}

View File

@ -3712,6 +3712,7 @@ win_line(
{
line_attr = HL_ATTR(HLF_CUL);
area_highlighting = TRUE;
wp->w_last_cursorline = wp->w_cursor.lnum;
}
#endif

View File

@ -0,0 +1,8 @@
| +0#af5f00255#ffffff0@1|3| | +0#0000000&@70
| +0#af5f00255&@1|2| |1+0#0000000&| @69
| +0#af5f00255&@1|1| |2+0#0000000&| @69
| +0#af5f00255&@1|0| >3+8#0000000&| @69
| +0#af5f00255&@1|1| | +0#0000000&@70
|~+0#4040ff13&| @73
|~| @73
|4+0#0000000&| |l|i|n|e|s| |y|a|n|k|e|d| @42|4|,|1| @10|A|l@1|

View File

@ -1,6 +1,7 @@
" Tests for ":highlight" and highlighting.
source view_util.vim
source screendump.vim
func Test_highlight()
" basic test if ":highlight" doesn't crash
@ -129,10 +130,6 @@ func Test_highlight_eol_with_cursorline()
endfunc
func Test_highlight_eol_with_cursorline_vertsplit()
if !has('vertsplit')
return
endif
let [hiCursorLine, hi_ul, hi_bg] = HiCursorLine()
call NewWindow('topleft 5', 5)
@ -533,3 +530,25 @@ func Test_termguicolors()
set t_Co=0
redraw
endfunc
func Test_cursorline_after_yank()
if !CanRunVimInTerminal()
return
endif
call writefile([
\ 'set cul rnu',
\ 'call setline(1, ["","1","2","3",""])',
\ ], 'Xtest_cursorline_yank')
let buf = RunVimInTerminal('-S Xtest_cursorline_yank', {'rows': 8})
call term_wait(buf)
call term_sendkeys(buf, "Gy3k")
call term_wait(buf)
call term_sendkeys(buf, "jj")
call VerifyScreenDump(buf, 'Test_cursorline_yank_01', {})
" clean up
call StopVimInTerminal(buf)
call delete('Xtest_cursorline_yank')
endfunc

View File

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