mirror of
https://github.com/vim/vim.git
synced 2025-07-26 11:04:33 -04:00
patch 8.1.1552: cursor position is wrong after sign column changes
Problem: Cursor position is wrong after sign column appears or disappears. (Yegappan Lakshmanan) Solution: Call changed_line_abv_curs() instead of changed_cline_bef_curs().
This commit is contained in:
parent
6c17543b56
commit
f85e40afc2
@ -231,7 +231,7 @@ insert_sign(
|
|||||||
if (buf->b_signlist == NULL)
|
if (buf->b_signlist == NULL)
|
||||||
{
|
{
|
||||||
redraw_buf_later(buf, NOT_VALID);
|
redraw_buf_later(buf, NOT_VALID);
|
||||||
changed_cline_bef_curs();
|
changed_line_abv_curs();
|
||||||
}
|
}
|
||||||
|
|
||||||
// first sign in signlist
|
// first sign in signlist
|
||||||
@ -531,7 +531,7 @@ buf_delsign(
|
|||||||
if (buf->b_signlist == NULL)
|
if (buf->b_signlist == NULL)
|
||||||
{
|
{
|
||||||
redraw_buf_later(buf, NOT_VALID);
|
redraw_buf_later(buf, NOT_VALID);
|
||||||
changed_cline_bef_curs();
|
changed_line_abv_curs();
|
||||||
}
|
}
|
||||||
|
|
||||||
return lnum;
|
return lnum;
|
||||||
@ -651,7 +651,7 @@ buf_delete_signs(buf_T *buf, char_u *group)
|
|||||||
if (buf->b_signlist != NULL && curwin != NULL)
|
if (buf->b_signlist != NULL && curwin != NULL)
|
||||||
{
|
{
|
||||||
redraw_buf_later(buf, NOT_VALID);
|
redraw_buf_later(buf, NOT_VALID);
|
||||||
changed_cline_bef_curs();
|
changed_line_abv_curs();
|
||||||
}
|
}
|
||||||
|
|
||||||
lastp = &buf->b_signlist;
|
lastp = &buf->b_signlist;
|
||||||
|
6
src/testdir/dumps/Test_sign_cursor_01.dump
Normal file
6
src/testdir/dumps/Test_sign_cursor_01.dump
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
| +0#0000e05#a8a8a8255@1|x+0#0000000#ffffff0@72
|
||||||
|
| +0#0000e05#a8a8a8255@1|x+0#0000000#ffffff0@1| @70
|
||||||
|
|=+0&#ffff4012|>>m+0&#ffffff0@3| @68
|
||||||
|
| +0#0000e05#a8a8a8255@1|y+0#0000000#ffffff0@3| @68
|
||||||
|
|~+0#4040ff13&| @73
|
||||||
|
| +0#0000000&@56|2|,|1| @10|A|l@1|
|
6
src/testdir/dumps/Test_sign_cursor_02.dump
Normal file
6
src/testdir/dumps/Test_sign_cursor_02.dump
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
|x+0&#ffffff0@74
|
||||||
|
>m@3| @70
|
||||||
|
|y@3| @70
|
||||||
|
|~+0#4040ff13&| @73
|
||||||
|
|~| @73
|
||||||
|
|:+0#0000000&|s|i|g|n| |u|n|p|l|a|c|e| |1|0| @40|2|,|1| @10|A|l@1|
|
@ -3,6 +3,8 @@
|
|||||||
source check.vim
|
source check.vim
|
||||||
CheckFeature signs
|
CheckFeature signs
|
||||||
|
|
||||||
|
source screendump.vim
|
||||||
|
|
||||||
func Test_sign()
|
func Test_sign()
|
||||||
new
|
new
|
||||||
call setline(1, ['a', 'b', 'c', 'd'])
|
call setline(1, ['a', 'b', 'c', 'd'])
|
||||||
@ -1706,3 +1708,31 @@ func Test_sign_jump_func()
|
|||||||
sign undefine sign1
|
sign undefine sign1
|
||||||
enew! | only!
|
enew! | only!
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
|
" Test for correct cursor position after the sign column appears or disappears.
|
||||||
|
func Test_sign_cursor_position()
|
||||||
|
if !CanRunVimInTerminal()
|
||||||
|
throw 'Skipped: cannot make screendumps'
|
||||||
|
endif
|
||||||
|
|
||||||
|
let lines =<< trim END
|
||||||
|
call setline(1, [repeat('x', 75), 'mmmm', 'yyyy'])
|
||||||
|
call cursor(2,1)
|
||||||
|
sign define s1 texthl=Search text==>
|
||||||
|
redraw
|
||||||
|
sign place 10 line=2 name=s1
|
||||||
|
END
|
||||||
|
call writefile(lines, 'XtestSigncolumn')
|
||||||
|
let buf = RunVimInTerminal('-S XtestSigncolumn', {'rows': 6})
|
||||||
|
call VerifyScreenDump(buf, 'Test_sign_cursor_01', {})
|
||||||
|
|
||||||
|
" update cursor position calculation
|
||||||
|
call term_sendkeys(buf, "lh")
|
||||||
|
call term_sendkeys(buf, ":sign unplace 10\<CR>")
|
||||||
|
call VerifyScreenDump(buf, 'Test_sign_cursor_02', {})
|
||||||
|
|
||||||
|
|
||||||
|
" clean up
|
||||||
|
call StopVimInTerminal(buf)
|
||||||
|
call delete('XtestSigncolumn')
|
||||||
|
endfunc
|
||||||
|
@ -777,6 +777,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 */
|
||||||
|
/**/
|
||||||
|
1552,
|
||||||
/**/
|
/**/
|
||||||
1551,
|
1551,
|
||||||
/**/
|
/**/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user