aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/window.c
diff options
context:
space:
mode:
authorRom Grk <romgrk.cc@gmail.com>2020-10-28 03:59:26 -0400
committerRom Grk <romgrk.cc@gmail.com>2020-10-28 03:59:26 -0400
commitbc21843228ce255bee8108a78c3c509743c8fe0c (patch)
treef94bf9a807eddcec037bb78118ee51585204e0b6 /src/nvim/window.c
parentd2a38dab8085ddb973393ca7f077ff65d64f60ef (diff)
downloadrneovim-bc21843228ce255bee8108a78c3c509743c8fe0c.tar.gz
rneovim-bc21843228ce255bee8108a78c3c509743c8fe0c.tar.bz2
rneovim-bc21843228ce255bee8108a78c3c509743c8fe0c.zip
feat: implement a working WinScrolled autocmd
Diffstat (limited to 'src/nvim/window.c')
-rw-r--r--src/nvim/window.c24
1 files changed, 24 insertions, 0 deletions
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
@@ -4966,6 +4966,30 @@ void shell_new_columns(void)
}
/*
+ * 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".
*/
void win_size_save(garray_T *gap)