vim-patch:8.2.4166: undo synced when switching buffer in another window

Problem:    Undo synced when switching buffer in another window.
Solution:   Do not sync undo when not needed. (closes vim/vim#9575)
e615db0604
(cherry picked from commit 2fa1b4cbff)
This commit is contained in:
zeertzjq
2022-01-21 05:14:40 +08:00
committed by github-actions[bot]
parent c91c6381ee
commit 0ad89969e1
2 changed files with 27 additions and 1 deletions

View File

@@ -1455,7 +1455,10 @@ void set_curbuf(buf_T *buf, int action)
}
if (bufref_valid(&prevbufref) && !aborting()) {
win_T *previouswin = curwin;
if (prevbuf == curbuf) {
// Do not sync when in Insert mode and the buffer is open in
// another window, might be a timer doing something in another
// window.
if (prevbuf == curbuf && ((State & INSERT) == 0 || curbuf->b_nwindows <= 1)) {
u_sync(false);
}
close_buffer(prevbuf == curwin->w_buffer ? curwin : NULL,