aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/diff.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/nvim/diff.c')
-rw-r--r--src/nvim/diff.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/nvim/diff.c b/src/nvim/diff.c
index 0b9bdb6181..6d5c301e81 100644
--- a/src/nvim/diff.c
+++ b/src/nvim/diff.c
@@ -2143,7 +2143,11 @@ int diff_check_with_linestatus(win_T *wp, linenr_T lnum, int *linestatus)
return 0;
}
- if (!dp->is_linematched && diff_linematch(dp)) {
+ // Don't run linematch when lnum is offscreen.
+ // Useful for scrollbind calculations which need to count all the filler lines
+ // above the screen.
+ if (lnum >= wp->w_topline && lnum < wp->w_botline
+ && !dp->is_linematched && diff_linematch(dp)) {
run_linematch_algorithm(dp);
}