From b65fd40f8c4cedd0477b2c9302f8140103fae3c5 Mon Sep 17 00:00:00 2001 From: Matt Campbell Date: Tue, 29 Nov 2022 13:04:37 -0600 Subject: [PATCH] Refactor InputState functions for AccessKit actions --- crates/egui/src/input_state.rs | 33 ++++++++------------------------- 1 file changed, 8 insertions(+), 25 deletions(-) diff --git a/crates/egui/src/input_state.rs b/crates/egui/src/input_state.rs index a68583f8..aa03966f 100644 --- a/crates/egui/src/input_state.rs +++ b/crates/egui/src/input_state.rs @@ -395,47 +395,30 @@ impl InputState { } #[cfg(feature = "accesskit")] - pub fn accesskit_action_request( + pub fn accesskit_action_requests( &self, id: crate::Id, action: accesskit::Action, - ) -> Option<&accesskit::ActionRequest> { + ) -> impl Iterator { let accesskit_id = id.accesskit_id(); - for event in &self.events { + self.events.iter().filter_map(move |event| { if let Event::AccessKitActionRequest(request) = event { if request.target == accesskit_id && request.action == action { return Some(request); } } - } - None + None + }) } #[cfg(feature = "accesskit")] pub fn has_accesskit_action_request(&self, id: crate::Id, action: accesskit::Action) -> bool { - self.accesskit_action_request(id, action).is_some() + self.accesskit_action_requests(id, action).next().is_some() } #[cfg(feature = "accesskit")] - pub fn num_accesskit_action_requests( - &self, - id: crate::Id, - desired_action: accesskit::Action, - ) -> usize { - let accesskit_id = id.accesskit_id(); - self.events - .iter() - .filter(|event| { - matches!( - event, - Event::AccessKitActionRequest(accesskit::ActionRequest { - target, - action, - .. - }) if *target == accesskit_id && *action == desired_action - ) - }) - .count() + pub fn num_accesskit_action_requests(&self, id: crate::Id, action: accesskit::Action) -> usize { + self.accesskit_action_requests(id, action).count() } }