From ef084b5c225c16b23e3e456e8d4d12138f415ea0 Mon Sep 17 00:00:00 2001 From: Sean Dewar <6256228+seandewar@users.noreply.github.com> Date: Wed, 11 Mar 2026 09:46:28 +0000 Subject: [PATCH] fix(api): don't config split as floatwin relative to itself Problem: possible to configure a split as a floatwin with relative=win that is relative to itself. Solution: fix the check. Not caused by this PR; just something I noticed when about to fix the validation logic. --- src/nvim/api/win_config.c | 2 +- test/functional/ui/float_spec.lua | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/nvim/api/win_config.c b/src/nvim/api/win_config.c index 1f9550a187..9c396bfce1 100644 --- a/src/nvim/api/win_config.c +++ b/src/nvim/api/win_config.c @@ -1360,7 +1360,7 @@ static bool parse_win_config(win_T *wp, Dict(win_config) *config, WinConfig *fco } if (relative_is_win || is_split) { - if (reconf && relative_is_win) { + if (wp && relative_is_win) { win_T *target_win = find_window_by_handle(config->win, err); if (!target_win) { goto fail; diff --git a/test/functional/ui/float_spec.lua b/test/functional/ui/float_spec.lua index 0369e55a30..1c7f309627 100644 --- a/test/functional/ui/float_spec.lua +++ b/test/functional/ui/float_spec.lua @@ -11191,6 +11191,9 @@ describe('float window', function() local winid = api.nvim_open_win(buf, false, config) api.nvim_set_current_win(winid) eq('floating window cannot be relative to itself', pcall_err(api.nvim_win_set_config, winid, config)) + -- Also when configuring split into float. + command('split') + eq('floating window cannot be relative to itself', pcall_err(api.nvim_win_set_config, 0, config)) end) it('bufpos out of range', function()