Skip to content

Commit 03765ea

Browse files
authored
Show missing subitems (#189)
1 parent ca32645 commit 03765ea

2 files changed

Lines changed: 8 additions & 5 deletions

File tree

‎src/draw.rs‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ impl<'a> Drawables<'a> {
5454
self.state.processed_entries(),
5555
self.state.skip_offset(),
5656
self.state.selected_item(),
57-
self.state.has_subitems(),
57+
self.state.selected_has_subitems(),
5858
self.tx.take().unwrap(),
5959
&self.list_config,
6060
),
@@ -84,7 +84,7 @@ pub fn make_drawables<'c: 'it, 's: 'it, 'it>(
8484
let list_space = list_config.space_for_entries(
8585
state.processed_entries().len().max(1),
8686
scale,
87-
state.has_subitems(),
87+
state.selected_has_subitems(),
8888
);
8989
Some(Space {
9090
width: 0.,

‎src/state.rs‎

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ impl InputBuffer {
4848
pub struct State {
4949
input_buffer: InputBuffer,
5050
skip_offset: usize,
51+
// index without considering filtering
5152
selected_item: usize,
5253
selected_subitem: usize,
5354
filtered_lines: FilteredLines,
@@ -146,9 +147,11 @@ impl State {
146147
self.selected_item
147148
}
148149

149-
pub fn has_subitems(&self) -> bool {
150-
// For now either all items has subname or none.
151-
self.inner.subentries_len(self.selected_item) > 0
150+
pub fn selected_has_subitems(&self) -> bool {
151+
self.filtered_lines
152+
.index(self.selected_item)
153+
.map(|idx| self.inner.subentries_len(idx))
154+
.is_some_and(|count| count > 0)
152155
}
153156

154157
pub fn processed_entries(&self) -> impl ExactSizeIterator<Item = ListItem<'_>> {

0 commit comments

Comments
 (0)