diff --git a/lua/telescope/actions/init.lua b/lua/telescope/actions/init.lua index d312fbeffd..2b864a3315 100644 --- a/lua/telescope/actions/init.lua +++ b/lua/telescope/actions/init.lua @@ -371,17 +371,8 @@ end --- Close the Telescope window, usually used within an action ---@param prompt_bufnr number: The prompt bufnr actions.close = function(prompt_bufnr) - local picker = action_state.get_current_picker(prompt_bufnr) - local original_win_id = picker.original_win_id - local cursor_valid, original_cursor = pcall(a.nvim_win_get_cursor, original_win_id) - actions.close_pum(prompt_bufnr) - require("telescope.pickers").on_close_prompt(prompt_bufnr) - pcall(a.nvim_set_current_win, original_win_id) - if cursor_valid and a.nvim_get_mode().mode == "i" and picker._original_mode ~= "i" then - pcall(a.nvim_win_set_cursor, original_win_id, { original_cursor[1], original_cursor[2] + 1 }) - end end --- Close the Telescope window, usually used within an action<br> diff --git a/lua/telescope/pickers.lua b/lua/telescope/pickers.lua index 9915416f85..e049b89542 100644 --- a/lua/telescope/pickers.lua +++ b/lua/telescope/pickers.lua @@ -1495,7 +1495,12 @@ function pickers.on_close_prompt(prompt_bufnr) event = "BufLeave", buffer = prompt_bufnr, } - picker.close_windows(status) + + vim.api.nvim_feedkeys(vim.api.nvim_replace_termcodes("<esc>", true, true, true), "n", true) + vim.defer_fn(function() + picker.close_windows(status) + end, 0) + mappings.clear(prompt_bufnr) end