summaryrefslogtreecommitdiff
path: root/schist_desktop_gui/src/gui/components/navigation/navigation_replace_options.rs
diff options
context:
space:
mode:
authorJoe Carstairs <me@joeac.net>2026-02-07 11:52:08 +0000
committerJoe Carstairs <me@joeac.net>2026-02-07 12:02:27 +0000
commit1664e741ad35ce52a01788c34029f0b2ea477e32 (patch)
treedd6bd7c83a7e834c75815a786d67b5188cdd1f48 /schist_desktop_gui/src/gui/components/navigation/navigation_replace_options.rs
parent179878d12ba10ac242da2044f4c6dfe4d4829e59 (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.rs5
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