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()