fix(ui): properly position Lazy tabs when opening another cmd. Fixes #361

This commit is contained in:
Folke Lemaitre 2023-01-10 14:26:28 +01:00
parent d2110278be
commit 8756c0950c
No known key found for this signature in database
GPG Key ID: 41F8B1FBACAE2040
1 changed files with 16 additions and 2 deletions

View File

@ -8,14 +8,28 @@ end
---@param opts? LazyFloatOptions ---@param opts? LazyFloatOptions
function M.float(opts) function M.float(opts)
opts = opts or {} opts = opts or {}
if require("lazy.view").visible() then local cursor
local View = require("lazy.view")
if View.visible() then
-- set cursor to the top of the ui, so the tabs are visible
cursor = vim.api.nvim_win_get_cursor(View.view.win)
vim.api.nvim_win_set_cursor(View.view.win, { 1, 0 })
opts = vim.tbl_deep_extend("force", { opts = vim.tbl_deep_extend("force", {
zindex = 60, zindex = 60,
border = "none", border = "none",
margin = { top = 3, left = 2, right = 2 }, margin = { top = 3, left = 2, right = 2 },
}, opts) }, opts)
end end
return require("lazy.view.float")(opts) local ret = require("lazy.view.float")(opts)
-- restore the cursor
if cursor then
ret:on("BufLeave", function()
if View.visible() then
vim.api.nvim_win_set_cursor(View.view.win, cursor)
end
end, { once = true })
end
return ret
end end
function M.open(uri) function M.open(uri)