aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbfredl <bjorn.linse@gmail.com>2023-09-20 09:25:59 +0200
committerGitHub <noreply@github.com>2023-09-20 09:25:59 +0200
commitacde86d43690cf6451793250ae7ada4254bc2be3 (patch)
tree640f376da51143065e6cbf51aaeb2835740f665c
parentc6cc56d69cf294e8b91602a2f34a261325691286 (diff)
parent437ed3cee2d29a24d555a873d024cd851b953153 (diff)
downloadrneovim-acde86d43690cf6451793250ae7ada4254bc2be3.tar.gz
rneovim-acde86d43690cf6451793250ae7ada4254bc2be3.tar.bz2
rneovim-acde86d43690cf6451793250ae7ada4254bc2be3.zip
Merge pull request #25096 from glepnir/float_winnew
fix(float): trigger winnew event when float window create
-rw-r--r--src/nvim/api/win_config.c3
-rw-r--r--test/functional/ui/float_spec.lua23
2 files changed, 26 insertions, 0 deletions
diff --git a/src/nvim/api/win_config.c b/src/nvim/api/win_config.c
index 3d77d65fbc..ebdbd896a5 100644
--- a/src/nvim/api/win_config.c
+++ b/src/nvim/api/win_config.c
@@ -197,6 +197,9 @@ Window nvim_open_win(Buffer buffer, Boolean enter, Dict(float_config) *config, E
if (win_valid(wp) && buffer > 0) {
Boolean noautocmd = !enter || fconfig.noautocmd;
win_set_buf(wp, buf, noautocmd, err);
+ if (!fconfig.noautocmd) {
+ apply_autocmds(EVENT_WINNEW, NULL, NULL, false, buf);
+ }
}
if (!win_valid(wp)) {
api_set_error(err, kErrorTypeException, "Window was closed immediately");
diff --git a/test/functional/ui/float_spec.lua b/test/functional/ui/float_spec.lua
index e1d5f6b965..f75fb52108 100644
--- a/test/functional/ui/float_spec.lua
+++ b/test/functional/ui/float_spec.lua
@@ -103,6 +103,29 @@ describe('float window', function()
assert_alive()
end)
+ it('open with WinNew autocmd', function()
+ local res = exec_lua([[
+ local triggerd = false
+ local buf = vim.api.nvim_create_buf(true, true)
+ vim.api.nvim_create_autocmd('WinNew', {
+ callback = function(opt)
+ if opt.buf == buf then
+ triggerd = true
+ end
+ end
+ })
+ local opts = {
+ relative = "win",
+ row = 0, col = 0,
+ width = 1, height = 1,
+ noautocmd = false,
+ }
+ vim.api.nvim_open_win(buf, true, opts)
+ return triggerd
+ ]])
+ eq(true, res)
+ end)
+
it('opened with correct height', function()
local height = exec_lua([[
vim.go.winheight = 20