From a4bd99c1174b3d97b3bb3ed875a6cabd3ec9117c Mon Sep 17 00:00:00 2001 From: unspeaker Date: Sun, 1 Sep 2024 20:35:32 +0300 Subject: [PATCH] fix(focus): correct focus inc/dec --- crates/tek_core/src/focus.rs | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/crates/tek_core/src/focus.rs b/crates/tek_core/src/focus.rs index 3cbc7935..b9d07797 100644 --- a/crates/tek_core/src/focus.rs +++ b/crates/tek_core/src/focus.rs @@ -17,13 +17,18 @@ pub trait Focus : 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); + } } }