diff options
author | zeertzjq <zeertzjq@outlook.com> | 2022-11-20 21:11:57 +0800 |
---|---|---|
committer | zeertzjq <zeertzjq@outlook.com> | 2022-11-20 21:24:22 +0800 |
commit | 91c192922da0240be5a8eb4045dae6cd968957e9 (patch) | |
tree | ca51e8d98038943518b8baeb1434209ce62d46f7 /src/nvim/autocmd.c | |
parent | 035d41ac5e5fcbb49eb64b72a924c4d6f89f0579 (diff) | |
download | rneovim-91c192922da0240be5a8eb4045dae6cd968957e9.tar.gz rneovim-91c192922da0240be5a8eb4045dae6cd968957e9.tar.bz2 rneovim-91c192922da0240be5a8eb4045dae6cd968957e9.zip |
vim-patch:9.0.0915: WinScrolled may trigger immediately when defined
Problem: WinScrolled may trigger immediately when defined.
Solution: Initialize the fields in all windows. (closes vim/vim#11582)
https://github.com/vim/vim/commit/29967732761d1ffb5592db5f5aa7036f5b52abf1
Co-authored-by: Bram Moolenaar <Bram@vim.org>
Diffstat (limited to 'src/nvim/autocmd.c')
-rw-r--r-- | src/nvim/autocmd.c | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/src/nvim/autocmd.c b/src/nvim/autocmd.c index 4df14411c5..54fa57c7a0 100644 --- a/src/nvim/autocmd.c +++ b/src/nvim/autocmd.c @@ -1142,13 +1142,17 @@ int autocmd_register(int64_t id, event_T event, char *pat, int patlen, int group } // Initialize the fields checked by the WinScrolled trigger to - // stop it from firing right after the first autocmd is defined. + // prevent it from firing right after the first autocmd is + // defined. if (event == EVENT_WINSCROLLED && !has_event(EVENT_WINSCROLLED)) { - curwin->w_last_topline = curwin->w_topline; - curwin->w_last_leftcol = curwin->w_leftcol; - curwin->w_last_skipcol = curwin->w_skipcol; - curwin->w_last_width = curwin->w_width; - curwin->w_last_height = curwin->w_height; + tabpage_T *save_curtab = curtab; + FOR_ALL_TABS(tp) { + unuse_tabpage(curtab); + use_tabpage(tp); + snapshot_windows_scroll_size(); + } + unuse_tabpage(curtab); + use_tabpage(save_curtab); } ap->cmds = NULL; |