aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/change.c
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2023-02-05 09:37:12 +0800
committerGitHub <noreply@github.com>2023-02-05 09:37:12 +0800
commit5c4b503d3cb4a48d083bcf50d4932927e6eb749d (patch)
tree62000e01ea28c66b87fc4182de53a0911473b2d6 /src/nvim/change.c
parent4b9bb3a1841489a18bbeb124fc11cbf359553ef5 (diff)
downloadrneovim-5c4b503d3cb4a48d083bcf50d4932927e6eb749d.tar.gz
rneovim-5c4b503d3cb4a48d083bcf50d4932927e6eb749d.tar.bz2
rneovim-5c4b503d3cb4a48d083bcf50d4932927e6eb749d.zip
vim-patch:9.0.1279: display shows lines scrolled down erroneously (#22126)
Problem: Display shows lines scrolled down erroneously. (Yishai Lerner) Solution: Do not change "wl_lnum" at index zero. (closes vim/vim#11938) https://github.com/vim/vim/commit/61fdbfa1e3c842252b701aec12f45839ca41ece5 Co-authored-by: Bram Moolenaar <Bram@vim.org>
Diffstat (limited to 'src/nvim/change.c')
-rw-r--r--src/nvim/change.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/nvim/change.c b/src/nvim/change.c
index 06696610b0..1bd7ea3a5a 100644
--- a/src/nvim/change.c
+++ b/src/nvim/change.c
@@ -296,7 +296,9 @@ static void changed_common(linenr_T lnum, colnr_T col, linenr_T lnume, linenr_T
for (int i = 0; i < wp->w_lines_valid; i++) {
if (wp->w_lines[i].wl_valid) {
if (wp->w_lines[i].wl_lnum >= lnum) {
- if (wp->w_lines[i].wl_lnum < lnume) {
+ // Do not change wl_lnum at index zero, it is used to
+ // compare with w_topline. Invalidate it instead.
+ if (wp->w_lines[i].wl_lnum < lnume || i == 0) {
// line included in change
wp->w_lines[i].wl_valid = false;
} else if (xtra != 0) {