Search only in active pane when using `Editor::find_or_create`

Antonio Scandurra created

Change summary

crates/editor/src/editor.rs       |  3 ++-
crates/workspace/src/workspace.rs | 10 ----------
2 files changed, 2 insertions(+), 11 deletions(-)

Detailed changes

crates/editor/src/editor.rs 🔗

@@ -848,9 +848,10 @@ impl Editor {
 
         if let Some(item) = project::File::from_dyn(buffer.read(cx).file())
             .and_then(|file| file.project_entry_id(cx))
-            .and_then(|entry_id| workspace.item_for_entry(entry_id, cx))
+            .and_then(|entry_id| workspace.active_pane().read(cx).item_for_entry(entry_id))
             .and_then(|item| item.downcast())
         {
+            workspace.activate_item(&item, cx);
             return item;
         }
 

crates/workspace/src/workspace.rs 🔗

@@ -646,16 +646,6 @@ impl Workspace {
         }
     }
 
-    pub fn item_for_entry(
-        &self,
-        entry_id: ProjectEntryId,
-        cx: &AppContext,
-    ) -> Option<Box<dyn ItemHandle>> {
-        self.panes()
-            .iter()
-            .find_map(|pane| pane.read(cx).item_for_entry(entry_id))
-    }
-
     pub fn item_of_type<T: Item>(&self, cx: &AppContext) -> Option<ViewHandle<T>> {
         self.items_of_type(cx).max_by_key(|item| item.id())
     }