diff options
author | glepnir <glephunter@gmail.com> | 2025-02-14 21:28:51 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-02-14 05:28:51 -0800 |
commit | cff5fa49fc5a71e00fe5f7b59e6584a825c1a8b8 (patch) | |
tree | 361991995be8a51e195f0c6470cc1adfe6a0e46f /src/nvim/winfloat.c | |
parent | dc33879dc2b2e855af1f50b1fe0ecb668f0f4a08 (diff) | |
download | rneovim-cff5fa49fc5a71e00fe5f7b59e6584a825c1a8b8.tar.gz rneovim-cff5fa49fc5a71e00fe5f7b59e6584a825c1a8b8.tar.bz2 rneovim-cff5fa49fc5a71e00fe5f7b59e6584a825c1a8b8.zip |
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
Diffstat (limited to 'src/nvim/winfloat.c')
-rw-r--r-- | src/nvim/winfloat.c | 7 |
1 files changed, 7 insertions, 0 deletions
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); |