summaryrefslogtreecommitdiffstats
path: root/futures/src/keyboard.rs
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón <hector@hecrj.dev>2024-06-11 20:22:44 +0200
committerLibravatar GitHub <noreply@github.com>2024-06-11 20:22:44 +0200
commite6d0b3bda5042a1017a5944a5227c97e0ed6caf9 (patch)
tree916f837424c3baeacc1e0f43b02bc892a3445cbb /futures/src/keyboard.rs
parentbda01567d59c00e42e5a208ee6d9ec4153d5c195 (diff)
parent6ea7846d88915f8d820c5126d7757f1346234522 (diff)
downloadiced-e6d0b3bda5042a1017a5944a5227c97e0ed6caf9.tar.gz
iced-e6d0b3bda5042a1017a5944a5227c97e0ed6caf9.tar.bz2
iced-e6d0b3bda5042a1017a5944a5227c97e0ed6caf9.zip
Merge pull request #2456 from iced-rs/window-id-in-event-subscriptions
Introduce `window::Id` to `Event` subscriptions
Diffstat (limited to 'futures/src/keyboard.rs')
-rw-r--r--futures/src/keyboard.rs39
1 files changed, 17 insertions, 22 deletions
diff --git a/futures/src/keyboard.rs b/futures/src/keyboard.rs
index 8e7da38f..f0d7d757 100644
--- a/futures/src/keyboard.rs
+++ b/futures/src/keyboard.rs
@@ -1,5 +1,6 @@
//! Listen to keyboard events.
use crate::core;
+use crate::core::event;
use crate::core::keyboard::{Event, Key, Modifiers};
use crate::subscription::{self, Subscription};
use crate::MaybeSend;
@@ -18,16 +19,14 @@ where
#[derive(Hash)]
struct OnKeyPress;
- subscription::filter_map((OnKeyPress, f), move |event, status| {
- match (event, status) {
- (
- core::Event::Keyboard(Event::KeyPressed {
- key, modifiers, ..
- }),
- core::event::Status::Ignored,
- ) => f(key, modifiers),
- _ => None,
- }
+ subscription::filter_map((OnKeyPress, f), move |event| match event {
+ subscription::Event::Interaction {
+ event:
+ core::Event::Keyboard(Event::KeyPressed { key, modifiers, .. }),
+ status: event::Status::Ignored,
+ ..
+ } => f(key, modifiers),
+ _ => None,
})
}
@@ -45,17 +44,13 @@ where
#[derive(Hash)]
struct OnKeyRelease;
- subscription::filter_map((OnKeyRelease, f), move |event, status| {
- match (event, status) {
- (
- core::Event::Keyboard(Event::KeyReleased {
- key,
- modifiers,
- ..
- }),
- core::event::Status::Ignored,
- ) => f(key, modifiers),
- _ => None,
- }
+ subscription::filter_map((OnKeyRelease, f), move |event| match event {
+ subscription::Event::Interaction {
+ event:
+ core::Event::Keyboard(Event::KeyReleased { key, modifiers, .. }),
+ status: event::Status::Ignored,
+ ..
+ } => f(key, modifiers),
+ _ => None,
})
}