patch 9.1.0059: No event triggered before creating a window

Problem:  No event is triggered before creating a window.
          (Sergey Vlasov)
Solution: Add the WinNewPre event (Sergey Vlasov)

fixes: #10635
closes: #12761

Signed-off-by: Sergey Vlasov <sergey@vlasov.me>
Signed-off-by: Christian Brabandt <cb@256bit.org>
diff --git a/runtime/doc/autocmd.txt b/runtime/doc/autocmd.txt
index 1641361..5f9f51e 100644
--- a/runtime/doc/autocmd.txt
+++ b/runtime/doc/autocmd.txt
@@ -1,4 +1,4 @@
-*autocmd.txt*   For Vim version 9.1.  Last change: 2024 Jan 23
+*autocmd.txt*   For Vim version 9.1.  Last change: 2024 Jan 25
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -381,6 +381,7 @@
 |CursorMoved|		the cursor was moved in Normal mode
 |CursorMovedI|		the cursor was moved in Insert mode
 
+|WinNewPre|		before creating a new window
 |WinNew|		after creating a new window
 |TabNew|		after creating a new tab page
 |WinClosed|		after closing a window
@@ -1390,6 +1391,18 @@
 				WinLeave autocommands (but not for ":new").
 				Not used for ":qa" or ":q" when exiting Vim.
 
+							*WinNewPre*
+WinNewPre			Before creating a new window. Triggered
+				before commands that modify window layout by
+				creating a split or new tab page. Not done for
+				the first window, when Vim has just started.
+				It is not allowed to modify window layout
+				while executing commands for the WinNewPre
+				event.
+				Most useful to store current window layout
+				and compare it with the new layout after the
+				Window has been created.
+
 							*WinNew*
 WinNew				When a new window was created.  Not done for
 				the first window, when Vim has just started.
diff --git a/runtime/doc/tags b/runtime/doc/tags
index 9a89916..ee6c0a9 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -5785,6 +5785,7 @@
 WinEnter	autocmd.txt	/*WinEnter*
 WinLeave	autocmd.txt	/*WinLeave*
 WinNew	autocmd.txt	/*WinNew*
+WinNewPre	autocmd.txt	/*WinNewPre*
 WinResized	autocmd.txt	/*WinResized*
 WinResized-event	windows.txt	/*WinResized-event*
 WinScrolled	autocmd.txt	/*WinScrolled*
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index c29ac2e..bb58597 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -4667,7 +4667,6 @@
 
 
 Autocommands:
-9   Add WinNewPre - before creating a new window. #10635
 9   When triggering WinNew provide the window ID somehow.  #10633
 9   Rework the code from FEAT_OSFILETYPE for autocmd-osfiletypes to use
     'filetype'.  Only for when the current buffer is known.