diff options
author | rabite <rabite@posteo.de> | 2019-01-21 16:14:30 +0100 |
---|---|---|
committer | rabite <rabite@posteo.de> | 2019-01-21 16:14:30 +0100 |
commit | 724cc61680e14d45fb7c0e5ebac525b71e7a1381 (patch) | |
tree | 4bc18a5893c863854c6d4a74de67866601213116 /src/listview.rs | |
parent | b29a3189287a4a603bcfb74ff7db52410f345d3d (diff) |
fixed scrollind
Diffstat (limited to 'src/listview.rs')
-rw-r--r-- | src/listview.rs | 24 |
1 files changed, 13 insertions, 11 deletions
diff --git a/src/listview.rs b/src/listview.rs index 2019227..2e26ace 100644 --- a/src/listview.rs +++ b/src/listview.rs @@ -42,15 +42,14 @@ impl<T: 'static> ListView<T> where ListView<T>: Widget { self.selection -= 1; } fn move_down(&mut self) { - let len = self.buffer.len(); + let lines = self.buffer.len(); let y_size = self.dimensions.1 as usize; - if self.selection == len - 1 { + if self.selection == lines - 1 { return; } - if self.selection >= y_size - HEADER_MARGIN - STATUS_BAR_MARGIN - && self.selection - self.offset >= y_size - HEADER_MARGIN - STATUS_BAR_MARGIN + if self.selection + 1 >= y_size && self.selection + 1 - self.offset >= y_size { self.offset += 1; } @@ -97,16 +96,19 @@ impl Widget for ListView<Files> { if i == (self.selection - self.offset) { output += &term::invert(); } - output += &format!("{}{}{}", term::goto_xy(xpos, i as u16 + ypos - 1 ), item, term::reset()); + output += &format!("{}{}{}", + term::goto_xy(xpos, i as u16 + ypos), + item, + term::reset()); } - // if ysize as usize > self.buffer.len() { - // let start_y = self.buffer.len() + 1 + ypos as usize; - // for i in start_y..ysize as usize { - // output += &format!("{}{:xsize$}{}", term::gotoy(i), " ", xsize = xsize as usize); - // } - // } + if ysize as usize > self.buffer.len() { + let start_y = self.buffer.len() + 1 + ypos as usize; + for i in start_y..ysize as usize { + output += &format!("{}{:xsize$}{}", term::gotoy(i), " ", xsize = xsize as usize); + } + } output } |