diff options
author | bfredl <bjorn.linse@gmail.com> | 2023-09-20 09:25:59 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-09-20 09:25:59 +0200 |
commit | acde86d43690cf6451793250ae7ada4254bc2be3 (patch) | |
tree | 640f376da51143065e6cbf51aaeb2835740f665c | |
parent | c6cc56d69cf294e8b91602a2f34a261325691286 (diff) | |
parent | 437ed3cee2d29a24d555a873d024cd851b953153 (diff) | |
download | rneovim-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.c | 3 | ||||
-rw-r--r-- | test/functional/ui/float_spec.lua | 23 |
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 |