diff options
-rw-r--r-- | src/nvim/api/win_config.c | 11 | ||||
-rw-r--r-- | src/nvim/option_vars.h | 2 | ||||
-rw-r--r-- | src/nvim/options.lua | 2 | ||||
-rw-r--r-- | test/functional/api/window_spec.lua | 8 |
4 files changed, 18 insertions, 5 deletions
diff --git a/src/nvim/api/win_config.c b/src/nvim/api/win_config.c index 31de5ca1eb..4b5b02e507 100644 --- a/src/nvim/api/win_config.c +++ b/src/nvim/api/win_config.c @@ -1273,13 +1273,18 @@ static bool parse_win_config(win_T *wp, Dict(win_config) *config, WinConfig *fco } } - if (HAS_KEY_X(config, border) || *p_winbd != NUL) { + Object border_style = OBJECT_INIT; + if (HAS_KEY_X(config, border)) { if (is_split) { api_set_error(err, kErrorTypeValidation, "non-float cannot have 'border'"); goto fail; } - Object style = config->border.type != kObjectTypeNil ? config->border : CSTR_AS_OBJ(p_winbd); - parse_border_style(style, fconfig, err); + border_style = config->border; + } else if (*p_winborder != NUL) { + border_style = CSTR_AS_OBJ(p_winborder); + } + if (border_style.type != kObjectTypeNil) { + parse_border_style(border_style, fconfig, err); if (ERROR_SET(err)) { goto fail; } diff --git a/src/nvim/option_vars.h b/src/nvim/option_vars.h index a484eb8447..3f0445675d 100644 --- a/src/nvim/option_vars.h +++ b/src/nvim/option_vars.h @@ -566,7 +566,7 @@ EXTERN OptInt p_wcm; ///< 'wildcharm' EXTERN int p_wic; ///< 'wildignorecase' EXTERN char *p_wim; ///< 'wildmode' EXTERN int p_wmnu; ///< 'wildmenu' -EXTERN char *p_winbd; ///< 'winborder' +EXTERN char *p_winborder; ///< 'winborder' EXTERN OptInt p_wh; ///< 'winheight' EXTERN OptInt p_wmh; ///< 'winminheight' EXTERN OptInt p_wmw; ///< 'winminwidth' diff --git a/src/nvim/options.lua b/src/nvim/options.lua index 6c71477ba0..bb63ff638b 100644 --- a/src/nvim/options.lua +++ b/src/nvim/options.lua @@ -10205,7 +10205,7 @@ local options = { scope = { 'global' }, short_desc = N_('border of floating window'), type = 'string', - varname = 'p_winbd', + varname = 'p_winborder', }, { abbreviation = 'wi', diff --git a/test/functional/api/window_spec.lua b/test/functional/api/window_spec.lua index 028f0beb38..119c185b72 100644 --- a/test/functional/api/window_spec.lua +++ b/test/functional/api/window_spec.lua @@ -1825,6 +1825,14 @@ describe('API/win', function() ) end) + it("can create split window when 'winborder' is set", function() + local old_win = api.nvim_get_current_win() + api.nvim_set_option_value('winborder', 'single', {}) + local new_win = api.nvim_open_win(0, false, { split = 'right', win = 0 }) + eq({ 'row', { { 'leaf', old_win }, { 'leaf', new_win } } }, fn.winlayout()) + eq('', api.nvim_win_get_config(new_win).relative) + end) + describe("with 'autochdir'", function() local topdir local otherbuf |