mirror of
https://github.com/saymrwulf/xous-core.git
synced 2026-11-15 08:30:02 +00:00
fix bug where entries don't redraw scrolling up/down to new page
This commit is contained in:
parent
3c82898780
commit
c6aecc08dc
1 changed files with 13 additions and 2 deletions
|
|
@ -326,16 +326,24 @@ impl VaultUx {
|
|||
match dir {
|
||||
NavDir::Up => {
|
||||
if self.selection_index > 0 {
|
||||
let starting_page = self.get_page();
|
||||
self.mark_as_dirty(self.selection_index);
|
||||
self.selection_index -= 1;
|
||||
self.mark_as_dirty(self.selection_index);
|
||||
if starting_page != self.get_page() {
|
||||
self.mark_screen_as_dirty(self.selection_index);
|
||||
}
|
||||
}
|
||||
}
|
||||
NavDir::Down => {
|
||||
if self.selection_index < self.filtered_list.len() {
|
||||
let starting_page = self.get_page();
|
||||
self.mark_as_dirty(self.selection_index);
|
||||
self.selection_index += 1;
|
||||
self.mark_as_dirty(self.selection_index);
|
||||
if starting_page != self.get_page() {
|
||||
self.mark_screen_as_dirty(self.selection_index);
|
||||
}
|
||||
}
|
||||
}
|
||||
NavDir::PageUp => {
|
||||
|
|
@ -368,6 +376,9 @@ impl VaultUx {
|
|||
self.filter(line);
|
||||
Ok(())
|
||||
}
|
||||
fn get_page(&self) -> i16 {
|
||||
self.selection_index as i16 / self.items_per_screen
|
||||
}
|
||||
|
||||
fn clear_area(&mut self) {
|
||||
let items_height = self.items_per_screen * self.item_height;
|
||||
|
|
@ -403,7 +414,7 @@ impl VaultUx {
|
|||
let mut dirty_tl: Option<Point> = None;
|
||||
let mut dirty_br: Option<Point> = None;
|
||||
|
||||
let page = self.selection_index as i16 / self.items_per_screen;
|
||||
let page = self.get_page();
|
||||
let list_len = self.filtered_list.len();
|
||||
for item in self.filtered_list[
|
||||
((page as usize) * self.items_per_screen as usize).min(list_len) ..
|
||||
|
|
@ -552,7 +563,7 @@ impl VaultUx {
|
|||
return Ok(());
|
||||
}
|
||||
// ---- draw list body area ----
|
||||
let page = self.selection_index as i16 / self.items_per_screen;
|
||||
let page = self.get_page();
|
||||
let selected = self.selection_index as i16 % self.items_per_screen;
|
||||
let list_len = self.filtered_list.len();
|
||||
for (index, item) in self.filtered_list[
|
||||
|
|
|
|||
Loading…
Reference in a new issue