diff options
author | Bram Moolenaar <Bram@vim.org> | 2022-01-20 21:00:54 +0000 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2022-01-20 21:00:54 +0000 |
commit | e615db06046312e74886fa1ef98feb5a9db2a7c3 (patch) | |
tree | 8777ab7d7ac5b1ad11f2b59d42f6b50f2b12fb66 /src/buffer.c | |
parent | 05386ca1d4823e5c98c24b8cd038af49aee62577 (diff) |
patch 8.2.4166: undo synced when switching buffer in another windowv8.2.4166
Problem: Undo synced when switching buffer in another window.
Solution: Do not sync undo when not needed. (closes #9575)
Diffstat (limited to 'src/buffer.c')
-rw-r--r-- | src/buffer.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/buffer.c b/src/buffer.c index 18aa2a09e7..d8d0f3cb5f 100644 --- a/src/buffer.c +++ b/src/buffer.c @@ -1744,7 +1744,11 @@ set_curbuf(buf_T *buf, int action) { 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, prevbuf, unload ? action : (action == DOBUF_GOTO |