From cff5fa49fc5a71e00fe5f7b59e6584a825c1a8b8 Mon Sep 17 00:00:00 2001 From: glepnir Date: Fri, 14 Feb 2025 21:28:51 +0800 Subject: fix(float): "Not enough room" error for 1-line float #25192 Problem: set winbar on a floating window which only have one row will cause crash. Solution: when new floating window only have one room don't copy winbar from target window" Fix #19464 --- src/nvim/winfloat.c | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'src') diff --git a/src/nvim/winfloat.c b/src/nvim/winfloat.c index d11b965dfc..8b039ffa79 100644 --- a/src/nvim/winfloat.c +++ b/src/nvim/winfloat.c @@ -22,6 +22,7 @@ #include "nvim/move.h" #include "nvim/option.h" #include "nvim/option_defs.h" +#include "nvim/option_vars.h" #include "nvim/optionstr.h" #include "nvim/pos_defs.h" #include "nvim/strings.h" @@ -65,6 +66,12 @@ win_T *win_new_float(win_T *wp, bool last, WinConfig fconfig, Error *err) } wp = win_alloc(tp_last, false); win_init(wp, curwin, 0); + if (wp->w_p_wbr != NULL && fconfig.height == 1) { + if (wp->w_p_wbr != empty_string_option) { + free_string_option(wp->w_p_wbr); + } + wp->w_p_wbr = empty_string_option; + } } else { assert(!last); assert(!wp->w_floating); -- cgit