From afc3c43f12e2d9d8114c29636ba976f732efc3ed Mon Sep 17 00:00:00 2001 From: glepnir Date: Mon, 10 Mar 2025 22:38:15 +0800 Subject: fix(popup): new preview_bufnr created when menu item is selected #32819 Problem: "use_float" in the if-condition causes a new buffer to be generated on every execution. Solution: - Remove the incorrect use_float check from the condition. - Use buf_clear to properly clear the existing buffer. --- src/nvim/popupmenu.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/nvim/popupmenu.c b/src/nvim/popupmenu.c index b057cae08d..d7909e6872 100644 --- a/src/nvim/popupmenu.c +++ b/src/nvim/popupmenu.c @@ -1039,12 +1039,9 @@ static bool pum_set_selected(int n, int repeat) && (curbuf->b_nwindows == 1) && (curbuf->b_fname == NULL) && bt_nofile(curbuf) - && (curbuf->b_p_bh[0] == 'w') - && !use_float) { + && (curbuf->b_p_bh[0] == 'w')) { // Already a "wipeout" buffer, make it empty. - while (!buf_is_empty(curbuf)) { - ml_delete(1, false); - } + buf_clear(); } else { // Don't want to sync undo in the current buffer. no_u_sync++; -- cgit