aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJan Edmund Lazo <jan.lazo@mail.utoronto.ca>2021-02-10 18:05:21 -0500
committerJan Edmund Lazo <jan.lazo@mail.utoronto.ca>2021-02-10 18:07:31 -0500
commitc3dada3e5a6fbf3cf845bdf17c9eaad132b5b841 (patch)
tree8d3ed1fd530121c7863ee406f6fbb1bdb5ded424 /src
parent89143b5fc430340d542a9d1dff7240359aab8956 (diff)
downloadrneovim-c3dada3e5a6fbf3cf845bdf17c9eaad132b5b841.tar.gz
rneovim-c3dada3e5a6fbf3cf845bdf17c9eaad132b5b841.tar.bz2
rneovim-c3dada3e5a6fbf3cf845bdf17c9eaad132b5b841.zip
vim-patch:8.2.2495: text jumps up and down when moving the cursor
Problem: Text jumps up and down when moving the cursor in a small window with wrapping text and 'scrolloff' set. Solution: Adjust the computation of w_skipcol. (partly by Ghjuvan Lacambre, closes vim/vim#7813) https://github.com/vim/vim/commit/8f33ebfade10cd1b4296d8ec8dca815a09e8a405
Diffstat (limited to 'src')
-rw-r--r--src/nvim/move.c4
-rw-r--r--src/nvim/testdir/test_breakindent.vim2
2 files changed, 3 insertions, 3 deletions
diff --git a/src/nvim/move.c b/src/nvim/move.c
index a6afdc27d9..1210a3365a 100644
--- a/src/nvim/move.c
+++ b/src/nvim/move.c
@@ -888,11 +888,11 @@ void curs_columns(
} else {
n = plines;
}
- if ((colnr_T)n >= wp->w_height_inner + wp->w_skipcol / width) {
+ if ((colnr_T)n >= wp->w_height_inner + wp->w_skipcol / width - so) {
extra += 2;
}
- if (extra == 3 || plines < so * 2) {
+ if (extra == 3 || plines <= so * 2) {
// not enough room for 'scrolloff', put cursor in the middle
n = wp->w_virtcol / width;
if (n > wp->w_height_inner / 2) {
diff --git a/src/nvim/testdir/test_breakindent.vim b/src/nvim/testdir/test_breakindent.vim
index a4c1f62a43..93982182d1 100644
--- a/src/nvim/testdir/test_breakindent.vim
+++ b/src/nvim/testdir/test_breakindent.vim
@@ -352,7 +352,7 @@ func Test_breakindent19_sbr_nextpage()
call s:compare_lines(expect, lines)
" Scroll down one screen line
setl scrolloff=5
- norm! 5gj
+ norm! 6gj
redraw!
let lines = s:screen_lines(1, 20)
let expect = [