diff options
| author | Luke Kershaw <35707277+l-kershaw@users.noreply.github.com> | 2021-11-16 11:14:52 +0000 |
|---|---|---|
| committer | Luke Kershaw <35707277+l-kershaw@users.noreply.github.com> | 2021-11-18 19:44:12 +0000 |
| commit | d686fb27998fc130f7b851fb6c540f3f1fe806e8 (patch) | |
| tree | aeb44da568dcd5b39202b41e7d65fb82a11eab81 /lua/telescope/pickers.lua | |
| parent | edcf07cf885f86c08c5b15f333b7c82b15c3527b (diff) | |
fix: cleanup of layout actions
* fix: finish docs and remove mistakes from merge
* fix: change order of `popup` changes based on type of change
- removes "flash" issue where popups don't update in sync
Diffstat (limited to 'lua/telescope/pickers.lua')
| -rw-r--r-- | lua/telescope/pickers.lua | 38 |
1 files changed, 26 insertions, 12 deletions
diff --git a/lua/telescope/pickers.lua b/lua/telescope/pickers.lua index b626c46..6b850e9 100644 --- a/lua/telescope/pickers.lua +++ b/lua/telescope/pickers.lua @@ -533,11 +533,12 @@ function Picker:recalculate_layout() local results_win = status.results_win local preview_win = status.preview_win - popup.move(results_win, popup_opts.results) - local preview_opts, preview_border_win if popup_opts.preview then if preview_win ~= nil then + -- Move all popups at the same time + popup.move(prompt_win, popup_opts.prompt) + popup.move(results_win, popup_opts.results) popup.move(preview_win, popup_opts.preview) else popup_opts.preview.highlight = "TelescopePreviewNormal" @@ -555,20 +556,33 @@ function Picker:recalculate_layout() self.preview_win = preview_win self.preview_border_win = preview_border_win self.preview_border = preview_opts and preview_opts.border + + -- Move prompt and results after preview created + vim.defer_fn(function() + popup.move(prompt_win, popup_opts.prompt) + popup.move(results_win, popup_opts.results) + end, 0) end elseif preview_win ~= nil then - utils.win_delete("preview_win", preview_win, true) - utils.win_delete("preview_win", status.preview_border_win, true) - status.preview_win = nil - status.preview_border_win = nil - state.set_status(prompt_win, status) - self.preview_win = nil - self.preview_border_win = nil - self.preview_border = nil + popup.move(prompt_win, popup_opts.prompt) + popup.move(results_win, popup_opts.results) + + -- Remove preview after the prompt and results are moved + vim.defer_fn(function() + utils.win_delete("preview_win", preview_win, true) + utils.win_delete("preview_win", status.preview_border_win, true) + status.preview_win = nil + status.preview_border_win = nil + state.set_status(prompt_win, status) + self.preview_win = nil + self.preview_border_win = nil + self.preview_border = nil + end, 0) + else + popup.move(prompt_win, popup_opts.prompt) + popup.move(results_win, popup_opts.results) end - popup.move(prompt_win, popup_opts.prompt) - -- Temporarily disabled: Draw the screen ASAP. This makes things feel speedier. -- vim.cmd [[redraw]] |
