Merge pull request #27854 from bfredl/boogalo_lines

fix(api): fix set_lines viewport adjustment, but this time good
This commit is contained in:
bfredl
2024-03-14 12:24:33 +01:00
committed by GitHub
2 changed files with 9 additions and 10 deletions

View File

@@ -1243,11 +1243,11 @@ void mark_adjust_buf(buf_T *buf, linenr_T line1, linenr_T line2, linenr_T amount
if (win != curwin || by_api) {
if (win->w_topline >= line1 && win->w_topline <= line2) {
if (amount == MAXLNUM) { // topline is deleted
if (line1 <= 1) {
win->w_topline = 1;
if (by_api && amount_after > line1 - line2 - 1) {
// api: if the deleted region was replaced with new contents, topline will
// get adjusted later as an effect of the adjusted cursor in fix_cursor()
} else {
// api: if the deleted region was replaced with new contents, display that
win->w_topline = (by_api && amount_after > line1 - line2 - 1) ? line1 : line1 - 1;
win->w_topline = MAX(line1 - 1, 1);
}
} else if (win->w_topline > line1) {
// keep topline on the same line, unless inserting just