2023-09-07 02:45:15 +02:00
|
|
|
//! Listen to keyboard events.
|
|
|
|
|
use crate::core;
|
2025-12-02 18:35:50 +01:00
|
|
|
use crate::core::keyboard::Event;
|
2023-09-07 02:45:15 +02:00
|
|
|
use crate::subscription::{self, Subscription};
|
|
|
|
|
|
2025-12-02 18:35:50 +01:00
|
|
|
/// Returns a [`Subscription`] that listens to ignored keyboard events.
|
|
|
|
|
pub fn listen() -> Subscription<Event> {
|
2023-09-07 02:45:15 +02:00
|
|
|
#[derive(Hash)]
|
2025-12-02 18:35:50 +01:00
|
|
|
struct Listen;
|
2023-09-07 02:45:15 +02:00
|
|
|
|
2025-12-02 18:35:50 +01:00
|
|
|
subscription::filter_map(Listen, move |event| match event {
|
2024-06-11 19:41:05 +02:00
|
|
|
subscription::Event::Interaction {
|
2025-12-02 18:35:50 +01:00
|
|
|
event: core::Event::Keyboard(event),
|
2025-12-02 16:35:25 -05:00
|
|
|
status: core::event::Status::Ignored,
|
2024-06-11 19:41:05 +02:00
|
|
|
..
|
2025-12-02 18:35:50 +01:00
|
|
|
} => Some(event),
|
2024-06-11 19:41:05 +02:00
|
|
|
_ => None,
|
|
|
|
|
})
|
2023-09-07 02:45:15 +02:00
|
|
|
}
|