0
0
mirror of https://github.com/vim/vim.git synced 2025-09-23 03:43:49 -04:00

patch 8.2.3556: filler lines are incorrect for other window in diff mode

Problem:    Filler lines are incorrect for other window in diff mode after
            making a change.
Solution:   Copy filler lines from the current window. (closes #8809)
This commit is contained in:
Bram Moolenaar
2021-10-22 20:56:55 +01:00
parent 25def2c8b8
commit 841c225b9e
4 changed files with 41 additions and 6 deletions

View File

@@ -656,7 +656,8 @@ diff_redraw(
{
win_T *wp;
win_T *wp_other = NULL;
int used_max_fill = FALSE;
int used_max_fill_other = FALSE;
int used_max_fill_curwin = FALSE;
int n;
need_diff_redraw = FALSE;
@@ -681,16 +682,25 @@ diff_redraw(
{
wp->w_topfill = n;
if (wp == curwin)
used_max_fill = TRUE;
used_max_fill_curwin = TRUE;
else if (wp_other != NULL)
used_max_fill_other = TRUE;
}
check_topfill(wp, FALSE);
}
}
if (wp_other != NULL && used_max_fill && curwin->w_p_scb)
// The current window was set to used the maximum number of filler
// lines, may need to reduce them.
diff_set_topline(wp_other, curwin);
if (wp_other != NULL && curwin->w_p_scb)
{
if (used_max_fill_curwin)
// The current window was set to used the maximum number of filler
// lines, may need to reduce them.
diff_set_topline(wp_other, curwin);
else if (used_max_fill_other)
// The other window was set to used the maximum number of filler
// lines, may need to reduce them.
diff_set_topline(curwin, wp_other);
}
}
static void