Mercurial > vim
comparison src/buffer.c @ 27275:841145bb9885 v8.2.4166
patch 8.2.4166: undo synced when switching buffer in another window
Commit: https://github.com/vim/vim/commit/e615db06046312e74886fa1ef98feb5a9db2a7c3
Author: Bram Moolenaar <Bram@vim.org>
Date: Thu Jan 20 21:00:54 2022 +0000
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 https://github.com/vim/vim/issues/9575)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Thu, 20 Jan 2022 22:15:03 +0100 |
parents | e1cedf009920 |
children | ebe56a24acb6 |
comparison
equal
deleted
inserted
replaced
27274:34e3b99f045d | 27275:841145bb9885 |
---|---|
1742 if (bufref_valid(&prevbufref)) | 1742 if (bufref_valid(&prevbufref)) |
1743 #endif | 1743 #endif |
1744 { | 1744 { |
1745 win_T *previouswin = curwin; | 1745 win_T *previouswin = curwin; |
1746 | 1746 |
1747 if (prevbuf == curbuf) | 1747 // Do not sync when in Insert mode and the buffer is open in |
1748 // another window, might be a timer doing something in another | |
1749 // window. | |
1750 if (prevbuf == curbuf | |
1751 && ((State & INSERT) == 0 || curbuf->b_nwindows <= 1)) | |
1748 u_sync(FALSE); | 1752 u_sync(FALSE); |
1749 close_buffer(prevbuf == curwin->w_buffer ? curwin : NULL, prevbuf, | 1753 close_buffer(prevbuf == curwin->w_buffer ? curwin : NULL, prevbuf, |
1750 unload ? action : (action == DOBUF_GOTO | 1754 unload ? action : (action == DOBUF_GOTO |
1751 && !buf_hide(prevbuf) | 1755 && !buf_hide(prevbuf) |
1752 && !bufIsChanged(prevbuf)) ? DOBUF_UNLOAD : 0, | 1756 && !bufIsChanged(prevbuf)) ? DOBUF_UNLOAD : 0, |