aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/nvim/move.c3
-rw-r--r--src/nvim/plines.c2
-rw-r--r--test/functional/ui/fold_spec.lua19
3 files changed, 22 insertions, 2 deletions
diff --git a/src/nvim/move.c b/src/nvim/move.c
index 9a2bae5753..89d2b69f51 100644
--- a/src/nvim/move.c
+++ b/src/nvim/move.c
@@ -2294,7 +2294,8 @@ void cursor_correct(win_T *wp)
int below = wp->w_filler_rows; // screen lines below botline
while ((above < above_wanted || below < below_wanted) && topline < botline) {
if (below < below_wanted && (below <= above || above >= above_wanted)) {
- below += plines_win_full(wp, botline, &botline, NULL, true, true);
+ below += plines_win_full(wp, botline, NULL, NULL, true, true);
+ hasFolding(wp, botline, &botline, NULL);
botline--;
}
if (above < above_wanted && (above < below || below >= below_wanted)) {
diff --git a/src/nvim/plines.c b/src/nvim/plines.c
index 3f0fb3795e..24efead13c 100644
--- a/src/nvim/plines.c
+++ b/src/nvim/plines.c
@@ -884,7 +884,7 @@ int plines_win_col(win_T *wp, linenr_T lnum, long column)
///
/// @param[in] wp window the line is in
/// @param[in] lnum line number
-/// @param[out] nextp if not NULL, the line after a fold
+/// @param[out] nextp if not NULL, the last line of a fold
/// @param[out] foldedp if not NULL, whether lnum is on a fold
/// @param[in] cache whether to use the window's cache for folds
/// @param[in] limit_winheight when true limit to window height
diff --git a/test/functional/ui/fold_spec.lua b/test/functional/ui/fold_spec.lua
index aea629df07..13b1558b68 100644
--- a/test/functional/ui/fold_spec.lua
+++ b/test/functional/ui/fold_spec.lua
@@ -2744,4 +2744,23 @@ describe('folded lines', function()
describe('without ext_multigrid', function()
with_ext_multigrid(false)
end)
+
+ it("do not interfere with corrected cursor position for 'scrolloff'", function()
+ local screen = Screen.new(40, 7)
+ exec([[
+ call setline(1, range(10))
+ 6,7fold
+ set scrolloff=1
+ norm L
+ ]])
+ screen:expect([[
+ 0 |
+ 1 |
+ 2 |
+ 3 |
+ ^4 |
+ {13:+-- 2 lines: 5·························}|
+ |
+ ]])
+ end)
end)