Fix scrolling of project panel

Nathan Sobo and Max Brunsfeld created

Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>

Change summary

gpui/src/elements/uniform_list.rs | 2 +-
zed/src/project_panel.rs          | 5 ++++-
2 files changed, 5 insertions(+), 2 deletions(-)

Detailed changes

gpui/src/elements/uniform_list.rs 🔗

@@ -137,7 +137,7 @@ where
                 size.set_y(size.y().min(scroll_height).max(constraint.min.y()));
             }
 
-            scroll_max = item_height * self.item_count as f32 - size.y();
+            scroll_max = (item_height * self.item_count as f32 - size.y()).max(0.);
             self.autoscroll(scroll_max, size.y(), item_height);
 
             items.clear();

zed/src/project_panel.rs 🔗

@@ -193,7 +193,10 @@ impl View for ProjectPanel {
         let handle = self.handle.clone();
         UniformList::new(
             self.list.clone(),
-            self.visible_entries.len(),
+            self.visible_entries
+                .iter()
+                .map(|worktree_entries| worktree_entries.len())
+                .sum(),
             move |range, items, cx| {
                 let theme = &settings.borrow().theme.project_panel;
                 let this = handle.upgrade(cx).unwrap();