Further simplifies logic for active view in close-all command

This commit is contained in:
Francesco Abbate 2021-08-27 14:42:57 +02:00
parent 7f4d9789d6
commit bb6b99b167
1 changed files with 4 additions and 8 deletions

View File

@ -596,8 +596,6 @@ end
function Node:close_all_docviews(keep_active) function Node:close_all_docviews(keep_active)
local node_active_view = self.active_view
local lost_active_view = false
if self.type == "leaf" then if self.type == "leaf" then
local i = 1 local i = 1
while i <= #self.views do while i <= #self.views do
@ -605,9 +603,6 @@ function Node:close_all_docviews(keep_active)
if (view:is(DocView) or view:is(LogView)) and not view:is(CommandView) and if (view:is(DocView) or view:is(LogView)) and not view:is(CommandView) and
(not keep_active or view ~= self.active_view) then (not keep_active or view ~= self.active_view) then
table.remove(self.views, i) table.remove(self.views, i)
if view == node_active_view then
lost_active_view = true
end
else else
i = i + 1 i = i + 1
end end
@ -619,9 +614,10 @@ function Node:close_all_docviews(keep_active)
-- top call, the primary node will take the active view anyway. -- top call, the primary node will take the active view anyway.
-- Set the empty view and takes the active view. -- Set the empty view and takes the active view.
self:add_view(EmptyView()) self:add_view(EmptyView())
elseif #self.views > 0 and lost_active_view then elseif #self.views > 0 then
-- In practice we never get there but if a view remain we need -- In practice we never get there but if it ever happen we need to
-- to reset the Node's active view. -- reset the Node's active view. We do this irrespectively of what the
-- previous active view was.
self:set_active_view(self.views[1]) self:set_active_view(self.views[1])
end end
else else