From fdfea98c50677fb85dee9301bd6875928fd9d2ff Mon Sep 17 00:00:00 2001 From: Dukantic Date: Fri, 18 Jul 2025 18:21:36 +0200 Subject: [PATCH] shortcut --- src/main.rs | 31 +++++++++++++++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/src/main.rs b/src/main.rs index 4d8e3a6..68e230b 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,5 +1,6 @@ mod polygon_draw; use iced::advanced::subscription; +use iced::keyboard::Modifiers; use polygon_draw::Polygon; mod music; @@ -429,11 +430,37 @@ impl MyApp { } fn subscription(&self) -> iced::Subscription { + let subscr_key = event::listen_with(|event, status, _| match (event, status) { + ( + Event::Keyboard(iced::keyboard::Event::KeyPressed { + key: Key::Character(c), + modifiers: Modifiers::CTRL, + .. + }), + Status::Ignored, + ) if c.as_ref() == "s" => Some(Message::Save), + ( + Event::Keyboard(iced::keyboard::Event::KeyPressed { + key: Key::Named(Named::Space), + .. + }), + Status::Ignored, + ) => Some(Message::TogglePaused), + ( + Event::Keyboard(iced::keyboard::Event::KeyPressed { + key: Key::Named(Named::ArrowUp), + .. + }), + Status::Ignored, + ) => Some(Message::ChangeDelta(0.0)), + _ => None, + }); if self.paused { - Subscription::none() + subscr_key } else { iced::Subscription::batch([ - iced::time::every(std::time::Duration::from_millis(16)).map(|_| Message::Tick) + subscr_key, + iced::time::every(std::time::Duration::from_millis(16)).map(|_| Message::Tick), ]) } }