commit acde86d43690cf6451793250ae7ada4254bc2be3
parent c6cc56d69cf294e8b91602a2f34a261325691286
Author: bfredl <bjorn.linse@gmail.com>
Date: Wed, 20 Sep 2023 09:25:59 +0200
Merge pull request #25096 from glepnir/float_winnew
fix(float): trigger winnew event when float window create
Diffstat:
2 files changed, 26 insertions(+), 0 deletions(-)
diff --git 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
@@ -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