fix(git/status_view): scope dispatch to current tabpage + test cleanup

This commit is contained in:
2026-05-08 03:12:41 +02:00
parent 867b5c2a2e
commit ebfcaef240
8 changed files with 217 additions and 154 deletions
+17 -12
View File
@@ -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