aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/nvim/window.c13
-rw-r--r--test/functional/autocmd/tabnewentered_spec.lua41
2 files changed, 33 insertions, 21 deletions
diff --git a/src/nvim/window.c b/src/nvim/window.c
index 4eaba3a3df..1298248f1e 100644
--- a/src/nvim/window.c
+++ b/src/nvim/window.c
@@ -251,11 +251,14 @@ newwindow:
if (win_new_tabpage((int)Prenum, NULL) == OK
&& valid_tabpage(oldtab)) {
newtab = curtab;
- goto_tabpage_tp(oldtab, TRUE, TRUE);
- if (curwin == wp)
- win_close(curwin, FALSE);
- if (valid_tabpage(newtab))
- goto_tabpage_tp(newtab, TRUE, TRUE);
+ goto_tabpage_tp(oldtab, true, true);
+ if (curwin == wp) {
+ win_close(curwin, false);
+ }
+ if (valid_tabpage(newtab)) {
+ goto_tabpage_tp(newtab, true, true);
+ apply_autocmds(EVENT_TABNEWENTERED, NULL, NULL, false, curbuf);
+ }
}
}
break;
diff --git a/test/functional/autocmd/tabnewentered_spec.lua b/test/functional/autocmd/tabnewentered_spec.lua
index 53bbca9f39..7044307399 100644
--- a/test/functional/autocmd/tabnewentered_spec.lua
+++ b/test/functional/autocmd/tabnewentered_spec.lua
@@ -2,21 +2,30 @@ local helpers = require('test.functional.helpers')(after_each)
local clear, nvim, eq = helpers.clear, helpers.nvim, helpers.eq
describe('TabNewEntered', function()
- describe('au TabNewEntered', function()
- describe('with * as <afile>', function()
- it('matches when entering any new tab', function()
- clear()
- nvim('command', 'au! TabNewEntered * echom "tabnewentered:".tabpagenr().":".bufnr("")')
- eq("\ntabnewentered:2:2", nvim('command_output', 'tabnew'))
- eq("\n\"test.x2\" [New File]\ntabnewentered:3:3", nvim('command_output', 'tabnew test.x2'))
- end)
- end)
- describe('with FILE as <afile>', function()
- it('matches when opening a new tab for FILE', function()
- local tmp_path = nvim('eval', 'tempname()')
- nvim('command', 'au! TabNewEntered '..tmp_path..' echom "tabnewentered:match"')
- eq("\n\""..tmp_path.."\" [New File]\ntabnewentered:4:4\ntabnewentered:match", nvim('command_output', 'tabnew '..tmp_path))
- end)
- end)
+ describe('au TabNewEntered', function()
+ describe('with * as <afile>', function()
+ it('matches when entering any new tab', function()
+ clear()
+ nvim('command', 'au! TabNewEntered * echom "tabnewentered:".tabpagenr().":".bufnr("")')
+ eq("\ntabnewentered:2:2", nvim('command_output', 'tabnew'))
+ eq("\n\"test.x2\" [New File]\ntabnewentered:3:3", nvim('command_output', 'tabnew test.x2'))
+ end)
end)
+ describe('with FILE as <afile>', function()
+ it('matches when opening a new tab for FILE', function()
+ local tmp_path = nvim('eval', 'tempname()')
+ nvim('command', 'au! TabNewEntered '..tmp_path..' echom "tabnewentered:match"')
+ eq("\n\""..tmp_path.."\" [New File]\ntabnewentered:4:4\ntabnewentered:match", nvim('command_output', 'tabnew '..tmp_path))
+ end)
+ end)
+ describe('with CTRL-W T', function()
+ it('works when opening a new tab with CTRL-W T', function()
+ clear()
+ nvim('command', 'au! TabNewEntered * echom "entered"')
+ nvim('command', 'tabnew test.x2')
+ nvim('command', 'split')
+ eq('\nentered', nvim('command_output', 'execute "normal \\<C-W>T"'))
+ end)
+ end)
+ end)
end)