diff src/main.c @ 28375:e466fdbe0699 v8.2.4713

patch 8.2.4713: plugins cannot track text scrolling Commit: https://github.com/vim/vim/commit/0937182d49fa8db50cec42785f22f1031760a0bd Author: LemonBoy <thatlemon@gmail.com> Date: Fri Apr 8 15:18:45 2022 +0100 patch 8.2.4713: plugins cannot track text scrolling Problem: Plugins cannot track text scrolling. Solution: Add the WinScrolled event. (closes https://github.com/vim/vim/issues/10102)
author Bram Moolenaar <Bram@vim.org>
date Fri, 08 Apr 2022 16:30:03 +0200
parents 9849df834f1d
children aa9720c76412
line wrap: on
line diff
--- a/src/main.c
+++ b/src/main.c
@@ -1336,6 +1336,14 @@ main_loop(
 		curbuf->b_last_changedtick = CHANGEDTICK(curbuf);
 	    }
 
+	    // Ensure curwin->w_topline and curwin->w_leftcol are up to date
+	    // before triggering a WinScrolled autocommand.
+	    update_topline();
+	    validate_cursor();
+
+	    if (!finish_op)
+		may_trigger_winscrolled(curwin);
+
 	    // If nothing is pending and we are going to wait for the user to
 	    // type a character, trigger SafeState.
 	    may_trigger_safestate(!op_pending() && restart_edit == 0);