diff --git a/data/core/rootview.lua b/data/core/rootview.lua index 2c6ee7fa..baf11683 100644 --- a/data/core/rootview.lua +++ b/data/core/rootview.lua @@ -437,6 +437,7 @@ function RootView:get_active_node() return self.root_node:get_node_for_view(core.active_view) end + local function get_primary_node(node) if node.is_primary_node then return node @@ -446,18 +447,26 @@ local function get_primary_node(node) end end -function RootView:get_primary_node() - return get_primary_node(self.root_node) -end -function RootView:open_doc(doc) - local node = self:get_active_node() +function RootView:get_active_node_default() + local node = self.root_node:get_node_for_view(core.active_view) if node.locked then local default_view = self:get_primary_node().views[1] assert(default_view, "internal error: cannot find original document node.") core.set_active_view(default_view) node = self:get_active_node() end + return node +end + + +function RootView:get_primary_node() + return get_primary_node(self.root_node) +end + + +function RootView:open_doc(doc) + local node = self:get_active_node_default() for i, view in ipairs(node.views) do if view.doc == doc then node:set_active_view(node.views[i]) diff --git a/data/plugins/projectsearch.lua b/data/plugins/projectsearch.lua index 61271cfa..50cd3c4a 100644 --- a/data/plugins/projectsearch.lua +++ b/data/plugins/projectsearch.lua @@ -213,7 +213,7 @@ local function begin_search(text, fn) return end local rv = ResultsView(text, fn) - core.root_view:get_active_node():add_view(rv) + core.root_view:get_active_node_default():add_view(rv) end