diff options
| author | William Boman <william@redwill.se> | 2022-07-29 22:03:42 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-07-29 20:03:42 +0000 |
| commit | 5cec196fe2874767f70a4b84af23290ea5f1a14d (patch) | |
| tree | 95e61f5ede212213f742af7b48e1c15e8d74c6be /lua | |
| parent | feat: add fixjson (#191) (diff) | |
| download | mason-5cec196fe2874767f70a4b84af23290ea5f1a14d.tar mason-5cec196fe2874767f70a4b84af23290ea5f1a14d.tar.gz mason-5cec196fe2874767f70a4b84af23290ea5f1a14d.tar.bz2 mason-5cec196fe2874767f70a4b84af23290ea5f1a14d.tar.lz mason-5cec196fe2874767f70a4b84af23290ea5f1a14d.tar.xz mason-5cec196fe2874767f70a4b84af23290ea5f1a14d.tar.zst mason-5cec196fe2874767f70a4b84af23290ea5f1a14d.zip | |
fix(ui): ensure window is active before getting cursor (#196)
* fix(ui): ensure window is active before getting cursor
* fixup
Co-authored-by: williambotman[bot] <william+bot@redwill.se>
Diffstat (limited to 'lua')
| -rw-r--r-- | lua/mason-core/ui/display.lua | 3 | ||||
| -rw-r--r-- | lua/mason/ui/instance.lua | 10 |
2 files changed, 9 insertions, 4 deletions
diff --git a/lua/mason-core/ui/display.lua b/lua/mason-core/ui/display.lua index d1c2985a..795cac52 100644 --- a/lua/mason-core/ui/display.lua +++ b/lua/mason-core/ui/display.lua @@ -498,6 +498,9 @@ function M.new_view_only_win(name, filetype) assert(win_id ~= nil, "Window has not been opened, cannot get cursor.") return vim.api.nvim_win_get_cursor(win_id) end, + is_open = function() + return win_id ~= nil and vim.api.nvim_win_is_valid(win_id) + end, ---@param tag any set_sticky_cursor = function(tag) if output then diff --git a/lua/mason/ui/instance.lua b/lua/mason/ui/instance.lua index a4234523..81fde781 100644 --- a/lua/mason/ui/instance.lua +++ b/lua/mason/ui/instance.lua @@ -382,14 +382,16 @@ end local function set_view(event) local view = event.payload - local cursor_line = window.get_cursor()[1] - if cursor_line > (window.get_win_config().height * 0.75) then - window.set_sticky_cursor "tabs" - end mutate_package_visibility(function(state) state.view.current = view state.view.has_changed = true end) + if window.is_open() then + local cursor_line = window.get_cursor()[1] + if cursor_line > (window.get_win_config().height * 0.75) then + window.set_sticky_cursor "tabs" + end + end end local function terminate_package_handle(event) |
