Merge pull request #647 from zed-industries/fix-reopening-project-items

Nathan Sobo created

Pass project entry id to Pane when opening a project item

Change summary

crates/workspace/src/workspace.rs | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)

Detailed changes

crates/workspace/src/workspace.rs 🔗

@@ -862,10 +862,9 @@ impl Workspace {
     {
         use project::Item as _;
 
-        if let Some(item) = project_item
-            .read(cx)
-            .entry_id(cx)
-            .and_then(|entry_id| self.active_pane().read(cx).item_for_entry(entry_id))
+        let entry_id = project_item.read(cx).entry_id(cx);
+        if let Some(item) = entry_id
+            .and_then(|entry_id| self.active_pane().read(cx).item_for_entry(dbg!(entry_id)))
             .and_then(|item| item.downcast())
         {
             self.activate_item(&item, cx);
@@ -873,7 +872,9 @@ impl Workspace {
         }
 
         let item = cx.add_view(|cx| T::for_project_item(self.project().clone(), project_item, cx));
-        self.add_item(Box::new(item.clone()), cx);
+        self.active_pane().update(cx, |pane, cx| {
+            pane.add_item(entry_id, Box::new(item.clone()), cx)
+        });
         item
     }