summaryrefslogtreecommitdiffstats
path: root/src/buffer.c
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2022-01-20 21:00:54 +0000
committerBram Moolenaar <Bram@vim.org>2022-01-20 21:00:54 +0000
commite615db06046312e74886fa1ef98feb5a9db2a7c3 (patch)
tree8777ab7d7ac5b1ad11f2b59d42f6b50f2b12fb66 /src/buffer.c
parent05386ca1d4823e5c98c24b8cd038af49aee62577 (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.c6
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