vim-patch:8.2.1488: text does not scroll when inserting above first line

Problem:    Text does not scroll when inserting above first line.
Solution:   Adjust off-by-one error. (Ken Takata, closes vim/vim#6739)
9dc1917f42
This commit is contained in:
Aufar Gilbran 2020-10-02 14:10:18 +08:00
parent e852bad3a7
commit a893593a9f
No known key found for this signature in database
GPG Key ID: ADE4FF10782DF025
3 changed files with 45 additions and 1 deletions

View File

@ -902,7 +902,7 @@ static void win_update(win_T *wp)
if (mod_top != 0
&& wp->w_topline == mod_top
&& (!wp->w_lines[0].wl_valid
|| wp->w_topline == wp->w_lines[0].wl_lnum)) {
|| wp->w_topline <= wp->w_lines[0].wl_lnum)) {
// w_topline is the first changed line and window is not scrolled,
// the scrolling from changed lines will be done further down.
} else if (wp->w_lines[0].wl_valid

View File

@ -208,3 +208,16 @@ func Test_visual_block_scroll()
call StopVimInTerminal(buf)
call delete(filename)
endfunc
func Test_display_scroll_at_topline()
" See test/functional/legacy/display_spec.lua
CheckScreendump
let buf = RunVimInTerminal('', #{cols: 20})
call term_sendkeys(buf, ":call setline(1, repeat('a', 21))\<CR>")
call term_wait(buf)
call term_sendkeys(buf, "O\<Esc>")
call VerifyScreenDump(buf, 'Test_display_scroll_at_topline', #{rows: 4})
call StopVimInTerminal(buf)
endfunc

View File

@ -0,0 +1,31 @@
local helpers = require('test.functional.helpers')(after_each)
local Screen = require('test.functional.ui.screen')
local clear = helpers.clear
local wait = helpers.wait
local feed = helpers.feed
local feed_command = helpers.feed_command
describe('display', function()
local screen
it('scroll when modified at topline', function()
clear()
screen = Screen.new(20, 4)
screen:attach()
screen:set_default_attr_ids({
[1] = {bold = true},
})
feed_command([[call setline(1, repeat('a', 21))]])
wait()
feed('O')
screen:expect([[
^ |
aaaaaaaaaaaaaaaaaaaa|
a |
{1:-- INSERT --} |
]])
end)
end)