summaryrefslogtreecommitdiffstats
path: root/src/buffer.c
diff options
context:
space:
mode:
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