aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorglepnir <glephunter@gmail.com>2023-10-06 19:40:02 +0800
committerglepnir <glephunter@gmail.com>2023-10-07 16:40:57 +0800
commit1cd7824dd69ee14b734713e61bef6bb713db8547 (patch)
tree0b0db59c0cba3013db3214d56e1e1ac659629d85
parent9b3045103f7d56e5ccd0574dcb93e953b72d5f50 (diff)
downloadrneovim-1cd7824dd69ee14b734713e61bef6bb713db8547.tar.gz
rneovim-1cd7824dd69ee14b734713e61bef6bb713db8547.tar.bz2
rneovim-1cd7824dd69ee14b734713e61bef6bb713db8547.zip
fix(ui): trigger TabNewEntered after split new tab
-rw-r--r--src/nvim/window.c6
-rw-r--r--test/functional/autocmd/tabnewentered_spec.lua8
2 files changed, 13 insertions, 1 deletions
diff --git a/src/nvim/window.c b/src/nvim/window.c
index 41199306fa..be1bb8edaf 100644
--- a/src/nvim/window.c
+++ b/src/nvim/window.c
@@ -4261,7 +4261,11 @@ int may_open_tabpage(void)
cmdmod.cmod_tab = 0; // reset it to avoid doing it twice
postponed_split_tab = 0;
- return win_new_tabpage(n, NULL);
+ int status = win_new_tabpage(n, NULL);
+ if (status == OK) {
+ apply_autocmds(EVENT_TABNEWENTERED, NULL, NULL, false, curbuf);
+ }
+ return status;
}
// Create up to "maxcount" tabpages with empty windows.
diff --git a/test/functional/autocmd/tabnewentered_spec.lua b/test/functional/autocmd/tabnewentered_spec.lua
index f3443f317d..6e167dd55c 100644
--- a/test/functional/autocmd/tabnewentered_spec.lua
+++ b/test/functional/autocmd/tabnewentered_spec.lua
@@ -35,6 +35,14 @@ describe('TabNewEntered', function()
eq('entered', nvim('exec', 'execute "normal \\<C-W>T"', true))
end)
end)
+ describe('with tab split #4334', function()
+ it('works when create a tab by using tab split command', function()
+ clear()
+ nvim('command', 'au! TabNewEntered * let b:entered = "entered"')
+ nvim('command', 'tab split')
+ eq('entered', nvim('exec', 'echo b:entered', true))
+ end)
+ end)
end)
end)