From eb9b0753a0b8c4fcc338e5185fb580ed505da0ed Mon Sep 17 00:00:00 2001 From: Stephan Dilly Date: Mon, 24 May 2021 01:29:48 +0200 Subject: [PATCH] show scrollbars in tree and syntax text (#725) --- src/components/revision_files.rs | 20 +++++++++++++++++--- src/components/syntax_text.rs | 12 ++++++++++++ 2 files changed, 29 insertions(+), 3 deletions(-) diff --git a/src/components/revision_files.rs b/src/components/revision_files.rs index 6ec05654..d12a349f 100644 --- a/src/components/revision_files.rs +++ b/src/components/revision_files.rs @@ -197,14 +197,18 @@ impl DrawableComponent for RevisionFilesComponent { usize::from(chunks[0].height.saturating_sub(2)); let selection = self.tree.visual_selection(); - selection.map_or_else( - || self.scroll_top.set(0), + let visual_count = selection.map_or_else( + || { + self.scroll_top.set(0); + 0 + }, |selection| { self.scroll_top.set(ui::calc_scroll_top( self.scroll_top.get(), tree_height, selection.index, - )) + )); + selection.count }, ); @@ -242,6 +246,16 @@ impl DrawableComponent for RevisionFilesComponent { items, ); + if is_tree_focused { + ui::draw_scrollbar( + f, + chunks[0], + &self.theme, + visual_count.saturating_sub(tree_height), + self.scroll_top.get(), + ); + } + self.current_file.draw(f, chunks[1])?; } diff --git a/src/components/syntax_text.rs b/src/components/syntax_text.rs index 46fc960e..4b02153f 100644 --- a/src/components/syntax_text.rs +++ b/src/components/syntax_text.rs @@ -187,6 +187,18 @@ impl DrawableComponent for SyntaxTextComponent { self.scroll(None); + if self.focused() { + ui::draw_scrollbar( + f, + area, + &self.theme, + usize::from(state.lines().saturating_sub( + state.height().saturating_sub(2), + )), + usize::from(state.scroll().y), + ); + } + Ok(()) } }