mirror of
https://github.com/neovim/neovim.git
synced 2025-10-08 10:56:31 +00:00
vim-patch:9.0.1476: lines put in non-current window are not displayed (#23265)
Problem: Lines put in non-current window are not displayed. (Marius
Gedminas)
Solution: Don't increment the topline when inserting just above it.
(closes vim/vim#12212)
e7f05a8780
Co-authored-by: Bram Moolenaar <Bram@vim.org>
This commit is contained in:
@@ -1100,12 +1100,12 @@ void ex_changes(exarg_T *eap)
|
||||
} \
|
||||
}
|
||||
|
||||
// Adjust marks between line1 and line2 (inclusive) to move 'amount' lines.
|
||||
// Adjust marks between "line1" and "line2" (inclusive) to move "amount" lines.
|
||||
// Must be called before changed_*(), appended_lines() or deleted_lines().
|
||||
// May be called before or after changing the text.
|
||||
// When deleting lines line1 to line2, use an 'amount' of MAXLNUM: The marks
|
||||
// within this range are made invalid.
|
||||
// If 'amount_after' is non-zero adjust marks after line2.
|
||||
// When deleting lines "line1" to "line2", use an "amount" of MAXLNUM: The
|
||||
// marks within this range are made invalid.
|
||||
// If "amount_after" is non-zero adjust marks after "line2".
|
||||
// Example: Delete lines 34 and 35: mark_adjust(34, 35, MAXLNUM, -2);
|
||||
// Example: Insert two lines below 55: mark_adjust(56, MAXLNUM, 2, 0);
|
||||
// or: mark_adjust(56, 55, MAXLNUM, 2);
|
||||
@@ -1240,7 +1240,9 @@ static void mark_adjust_internal(linenr_T line1, linenr_T line2, linenr_T amount
|
||||
} else {
|
||||
win->w_topline = line1 - 1;
|
||||
}
|
||||
} else { // keep topline on the same line
|
||||
} else if (win->w_topline > line1) {
|
||||
// keep topline on the same line, unless inserting just
|
||||
// above it (we probably want to see that line then)
|
||||
win->w_topline += amount;
|
||||
}
|
||||
win->w_topfill = 0;
|
||||
|
Reference in New Issue
Block a user