aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/autocmd.c
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2022-11-20 21:11:57 +0800
committerzeertzjq <zeertzjq@outlook.com>2022-11-20 21:24:22 +0800
commit91c192922da0240be5a8eb4045dae6cd968957e9 (patch)
treeca51e8d98038943518b8baeb1434209ce62d46f7 /src/nvim/autocmd.c
parent035d41ac5e5fcbb49eb64b72a924c4d6f89f0579 (diff)
downloadrneovim-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.c16
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;