mirror of
https://github.com/vim/vim.git
synced 2025-10-09 06:14:17 -04:00
patch 9.0.1981: not being able to scroll up in diff mode
Problem: Cannot scroll up in diff mode with many filler lines and zero 'scrolloff'. Solution: Invalidate w_cline_row before calling comp_botline(). closes: #13256 Signed-off-by: Christian Brabandt <cb@256bit.org> Co-authored-by: zeertzjq <zeertzjq@outlook.com>
This commit is contained in:
committed by
Christian Brabandt
parent
119fdd9293
commit
0583491277
@@ -1614,6 +1614,42 @@ func Test_diff_scroll_wrap_on()
|
||||
call assert_equal(1, winsaveview().topline)
|
||||
normal! j
|
||||
call assert_equal(2, winsaveview().topline)
|
||||
|
||||
bwipe!
|
||||
bwipe!
|
||||
endfunc
|
||||
|
||||
func Test_diff_scroll_many_filler()
|
||||
20new
|
||||
vnew
|
||||
call setline(1, ['^^^', '^^^', '$$$', '$$$'])
|
||||
diffthis
|
||||
setlocal scrolloff=0
|
||||
wincmd p
|
||||
call setline(1, ['^^^', '^^^'] + repeat(['###'], 41) + ['$$$', '$$$'])
|
||||
diffthis
|
||||
setlocal scrolloff=0
|
||||
wincmd p
|
||||
redraw
|
||||
|
||||
" Note: need a redraw after each scroll, otherwise the test always passes.
|
||||
normal! G
|
||||
redraw
|
||||
call assert_equal(3, winsaveview().topline)
|
||||
call assert_equal(18, winsaveview().topfill)
|
||||
exe "normal! \<C-B>"
|
||||
redraw
|
||||
call assert_equal(3, winsaveview().topline)
|
||||
call assert_equal(19, winsaveview().topfill)
|
||||
exe "normal! \<C-B>"
|
||||
redraw
|
||||
call assert_equal(2, winsaveview().topline)
|
||||
call assert_equal(0, winsaveview().topfill)
|
||||
exe "normal! \<C-B>"
|
||||
redraw
|
||||
call assert_equal(1, winsaveview().topline)
|
||||
call assert_equal(0, winsaveview().topfill)
|
||||
|
||||
bwipe!
|
||||
bwipe!
|
||||
endfunc
|
||||
|
Reference in New Issue
Block a user