From bc21843228ce255bee8108a78c3c509743c8fe0c Mon Sep 17 00:00:00 2001 From: Rom Grk Date: Wed, 28 Oct 2020 03:59:26 -0400 Subject: feat: implement a working WinScrolled autocmd --- src/nvim/window.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'src/nvim/window.c') diff --git a/src/nvim/window.c b/src/nvim/window.c index 4931221e7a..bbc039d151 100644 --- a/src/nvim/window.c +++ b/src/nvim/window.c @@ -4965,6 +4965,30 @@ void shell_new_columns(void) win_reconfig_floats(); // The size of floats might change } +/* + * Check if "wp" has scrolled since last time it was checked + */ +bool win_did_scroll(win_T *wp) +{ + return (curwin->w_last_topline != curwin->w_topline || + curwin->w_last_leftcol != curwin->w_leftcol || + curwin->w_last_width != curwin->w_width || + curwin->w_last_height != curwin->w_height); +} + +/* + * Trigger WinScrolled autocmd + */ +void do_autocmd_winscrolled(win_T *wp) +{ + apply_autocmds(EVENT_WINSCROLLED, NULL, NULL, false, curbuf); + + wp->w_last_topline = wp->w_topline; + wp->w_last_leftcol = wp->w_leftcol; + wp->w_last_width = wp->w_width; + wp->w_last_height = wp->w_height; +} + /* * Save the size of all windows in "gap". */ -- cgit From 4ed6f6949737749521b342d164d8695e8958d02f Mon Sep 17 00:00:00 2001 From: Rom Grk Date: Fri, 6 Nov 2020 20:06:40 -0500 Subject: my fight with the linter --- src/nvim/window.c | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) (limited to 'src/nvim/window.c') diff --git a/src/nvim/window.c b/src/nvim/window.c index 47b6b7e713..9d918ebeb0 100644 --- a/src/nvim/window.c +++ b/src/nvim/window.c @@ -4975,20 +4975,17 @@ void shell_new_columns(void) win_reconfig_floats(); // The size of floats might change } -/* - * Check if "wp" has scrolled since last time it was checked - */ +/// Check if "wp" has scrolled since last time it was checked +/// @param wp the window to check bool win_did_scroll(win_T *wp) { - return (curwin->w_last_topline != curwin->w_topline || - curwin->w_last_leftcol != curwin->w_leftcol || - curwin->w_last_width != curwin->w_width || - curwin->w_last_height != curwin->w_height); + return (curwin->w_last_topline != curwin->w_topline + || curwin->w_last_leftcol != curwin->w_leftcol + || curwin->w_last_width != curwin->w_width + || curwin->w_last_height != curwin->w_height); } -/* - * Trigger WinScrolled autocmd - */ +/// Trigger WinScrolled autocmd void do_autocmd_winscrolled(win_T *wp) { apply_autocmds(EVENT_WINSCROLLED, NULL, NULL, false, curbuf); -- cgit