From 9592ce85f5fd029b3d55f8f0c579fc3c5181503f Mon Sep 17 00:00:00 2001 From: Francesco Abbate Date: Fri, 27 Aug 2021 23:20:08 +0200 Subject: [PATCH] Revert "Further simplifies logic for active view in close-all command" This reverts commit bb6b99b16777f0b34c1ea28db78525b4041d0f31. --- data/core/rootview.lua | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/data/core/rootview.lua b/data/core/rootview.lua index 47f028cb..8bc402f9 100644 --- a/data/core/rootview.lua +++ b/data/core/rootview.lua @@ -596,6 +596,8 @@ end function Node:close_all_docviews(keep_active) + local node_active_view = self.active_view + local lost_active_view = false if self.type == "leaf" then local i = 1 while i <= #self.views do @@ -603,6 +605,9 @@ function Node:close_all_docviews(keep_active) if (view:is(DocView) or view:is(LogView)) and not view:is(CommandView) and (not keep_active or view ~= self.active_view) then table.remove(self.views, i) + if view == node_active_view then + lost_active_view = true + end else i = i + 1 end @@ -614,10 +619,9 @@ function Node:close_all_docviews(keep_active) -- top call, the primary node will take the active view anyway. -- Set the empty view and takes the active view. self:add_view(EmptyView()) - elseif #self.views > 0 then - -- In practice we never get there but if it ever happen we need to - -- reset the Node's active view. We do this irrespectively of what the - -- previous active view was. + elseif #self.views > 0 and lost_active_view then + -- In practice we never get there but if a view remain we need + -- to reset the Node's active view. self:set_active_view(self.views[1]) end else