forked from aniani/vim
patch 9.1.0414: Unable to leave long line with 'smoothscroll' and 'scrolloff'
Problem: Unable to leave long line with 'smoothscroll' and 'scrolloff'.
Corrupted screen near the end of a long line with 'scrolloff'.
(Ernie Rael, after 9.1.0280)
Solution: Only correct cursor in case scroll_cursor_bot() was not itself
called to make the cursor visible. Avoid adjusting for
'scrolloff' beyond the text line height (Luuk van Baal)
fixes: #14726
closes: #14783
Signed-off-by: Luuk van Baal <luukvbaal@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
committed by
Christian Brabandt
parent
f5c8f520ba
commit
b32055e504
@@ -1153,4 +1153,39 @@ func Test_smoothscroll_long_line_zb()
|
||||
bwipe!
|
||||
endfunc
|
||||
|
||||
func Test_smooth_long_scrolloff()
|
||||
CheckScreendump
|
||||
|
||||
let lines =<< trim END
|
||||
set smoothscroll scrolloff=3
|
||||
call setline(1, ['one', 'two long'->repeat(100), 'three', 'four', 'five', 'six'])
|
||||
END
|
||||
call writefile(lines, 'XSmoothLongScrolloff', 'D')
|
||||
let buf = RunVimInTerminal('-u NONE -S XSmoothLongScrolloff', #{rows: 8, cols: 40})
|
||||
"FIXME: empty screen due to reset_skipcol()/curs_columns() shenanigans
|
||||
call term_sendkeys(buf, ":norm j601|\<CR>")
|
||||
call VerifyScreenDump(buf, 'Test_smooth_long_scrolloff_1', {})
|
||||
|
||||
call term_sendkeys(buf, "gj")
|
||||
call VerifyScreenDump(buf, 'Test_smooth_long_scrolloff_2', {})
|
||||
|
||||
call term_sendkeys(buf, "gj")
|
||||
call VerifyScreenDump(buf, 'Test_smooth_long_scrolloff_3', {})
|
||||
|
||||
call term_sendkeys(buf, "gj")
|
||||
call VerifyScreenDump(buf, 'Test_smooth_long_scrolloff_4', {})
|
||||
|
||||
call term_sendkeys(buf, "gj")
|
||||
call VerifyScreenDump(buf, 'Test_smooth_long_scrolloff_5', {})
|
||||
|
||||
call term_sendkeys(buf, "gj")
|
||||
call VerifyScreenDump(buf, 'Test_smooth_long_scrolloff_6', {})
|
||||
|
||||
call term_sendkeys(buf, "gk")
|
||||
"FIXME: empty screen due to reset_skipcol()/curs_columns() shenanigans
|
||||
call VerifyScreenDump(buf, 'Test_smooth_long_scrolloff_7', {})
|
||||
|
||||
call StopVimInTerminal(buf)
|
||||
endfunc
|
||||
|
||||
" vim: shiftwidth=2 sts=2 expandtab
|
||||
|
||||
Reference in New Issue
Block a user