fix(git/status_view): scope dispatch to current tabpage + test cleanup
This commit is contained in:
+17
-12
@@ -62,14 +62,23 @@ local function find_view()
|
||||
end
|
||||
end
|
||||
|
||||
---@param win integer?
|
||||
---@return boolean
|
||||
local function valid_in_current_tab(win)
|
||||
if not win or not vim.api.nvim_win_is_valid(win) then
|
||||
return false
|
||||
end
|
||||
return vim.api.nvim_win_get_tabpage(win)
|
||||
== vim.api.nvim_get_current_tabpage()
|
||||
end
|
||||
|
||||
---@param s ow.Git.StatusView.State
|
||||
---@return integer?
|
||||
local function win_for(s)
|
||||
local win = s.win
|
||||
if win and vim.api.nvim_win_is_valid(win) then
|
||||
return win
|
||||
if valid_in_current_tab(s.win) then
|
||||
return s.win
|
||||
end
|
||||
win = find_view()
|
||||
local win = find_view()
|
||||
s.win = win
|
||||
return win
|
||||
end
|
||||
@@ -267,14 +276,10 @@ end
|
||||
---@return integer? left
|
||||
---@return integer? right
|
||||
local function adopt_diff_wins(s, status_win)
|
||||
local left = s.diff_left_win
|
||||
local right = s.diff_right_win
|
||||
if left and not vim.api.nvim_win_is_valid(left) then
|
||||
left = nil
|
||||
end
|
||||
if right and not vim.api.nvim_win_is_valid(right) then
|
||||
right = nil
|
||||
end
|
||||
local left = valid_in_current_tab(s.diff_left_win) and s.diff_left_win
|
||||
or nil
|
||||
local right = valid_in_current_tab(s.diff_right_win) and s.diff_right_win
|
||||
or nil
|
||||
if left and right then
|
||||
return left, right
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user