fix(focus): correct focus inc/dec

This commit is contained in:
🪞👃🪞 2024-09-01 20:35:32 +03:00
parent b8ac83b019
commit a4bd99c117

View file

@ -17,13 +17,18 @@ pub trait Focus <const N: usize>: Render + Handle {
}
fn focus_prev (&mut self) {
let focus = self.focus();
let focus = if focus > 0 { N - 1 } else { focus - 1 };
*self.focus_mut() = focus;
self.focus_set(if focus > 0 { focus - 1 } else { N - 1 });
}
fn focus_next (&mut self) {
let focus = self.focus();
let focus = if focus < N - 1 { focus + 1 } else { 0 };
self.focus_set(if focus < N - 1 { focus + 1 } else { 0 });
}
fn focus_set (&mut self, focus: usize) {
*self.focus_mut() = focus;
let focusable = self.focusable_mut();
for index in 0..N {
focusable[index].set_focused(index == focus);
}
}
}