Properly compute depth and path for project panel entries (#19068)

Closes https://github.com/zed-industries/zed/issues/18939

This fixes incorrect width estimates and horizontal scrollbar glitches

Release Notes:

- Fixes horizontal scrollbar not scrolling enough for certain paths
([#18939](https://github.com/zed-industries/zed/issues/18939))

Co-authored-by: Piotr Osiewicz <piotr@zed.dev>
This commit is contained in:
Kirill Bulatov 2024-10-11 15:38:12 +03:00 committed by GitHub
parent 0a7468c89f
commit 79ed217e42
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -1911,11 +1911,9 @@ impl ProjectPanel {
Some(Arc::<Path>::from(full_path.join(suffix)))
})
})
.or_else(|| entry.path.file_name().map(Path::new).map(Arc::from))
.unwrap_or_else(|| entry.path.clone());
let depth = path
.strip_prefix(worktree_abs_path)
.map(|suffix| suffix.components().count())
.unwrap_or_default();
let depth = path.components().count();
(depth, path)
};
let width_estimate = item_width_estimate(