diff options
| author | Joe Carstairs <me@joeac.net> | 2026-02-07 11:52:08 +0000 |
|---|---|---|
| committer | Joe Carstairs <me@joeac.net> | 2026-02-07 12:02:27 +0000 |
| commit | 1664e741ad35ce52a01788c34029f0b2ea477e32 (patch) | |
| tree | dd6bd7c83a7e834c75815a786d67b5188cdd1f48 /schist_desktop_gui/src/gui/components/navigation/navigation_replace_options.rs | |
| parent | 179878d12ba10ac242da2044f4c6dfe4d4829e59 (diff) | |
task-001: can navigate file screen options with keyboard
Diffstat (limited to 'schist_desktop_gui/src/gui/components/navigation/navigation_replace_options.rs')
| -rw-r--r-- | schist_desktop_gui/src/gui/components/navigation/navigation_replace_options.rs | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/schist_desktop_gui/src/gui/components/navigation/navigation_replace_options.rs b/schist_desktop_gui/src/gui/components/navigation/navigation_replace_options.rs index e24059d..496250d 100644 --- a/schist_desktop_gui/src/gui/components/navigation/navigation_replace_options.rs +++ b/schist_desktop_gui/src/gui/components/navigation/navigation_replace_options.rs @@ -1,6 +1,8 @@ use iced::Element; use itertools::Itertools; +use crate::traits::Focusable; + use super::{Message, Navigation}; #[derive(PartialEq)] @@ -11,7 +13,7 @@ pub enum ReplaceOptionResult { impl<'a, TOption> Navigation<TOption> where - TOption: Clone + PartialEq + 'a, + TOption: Clone + Focusable + PartialEq + 'a, Element<'a, Message<TOption>>: From<&'a TOption>, { pub fn replace_first<P>(&'a mut self, pred: P, new: &'a Vec<TOption>) -> ReplaceOptionResult @@ -92,6 +94,7 @@ where } self.active_option = new.first().cloned(); + self.active_option.iter_mut().for_each(|o| o.focus()); self.options_after_active .splice(0..0, new.split_at(1).1.to_vec()); ReplaceOptionResult::ReplacedOption |
