diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/main.rs | 12 | ||||
| -rw-r--r-- | src/types.rs | 3 |
2 files changed, 9 insertions, 6 deletions
diff --git a/src/main.rs b/src/main.rs index 695d742..107dd3f 100644 --- a/src/main.rs +++ b/src/main.rs @@ -499,7 +499,7 @@ impl IcedBuilder { self.dialog.close(); } } - Message::WindowEvent(window::Event::CloseRequested) => { + Message::CloseRequest => { if self.is_dirty { self.is_dialog_open = true; self.dialog = Dialog::unsaved_changes( @@ -510,14 +510,18 @@ impl IcedBuilder { return self.update(Message::CloseApp); } } - Message::WindowEvent(_) => {} } Task::none() } fn subscription(&self) -> iced::Subscription<Message> { - let keyboard = keyboard::on_key_press(|key, modifiers| { + let keyboard = keyboard::listen().filter_map(|event| { + let keyboard::Event::KeyPressed { key, modifiers, .. } = event + else { + return None; + }; + if modifiers.command() { match key.as_ref() { keyboard::Key::Character("o") => Some(Message::OpenFile), @@ -541,7 +545,7 @@ impl IcedBuilder { }); let window_events = - window::events().map(|(_id, event)| Message::WindowEvent(event)); + window::close_requests().map(|_id| Message::CloseRequest); let system_theme = theme_changes().map(Message::SystemThemeChanged); diff --git a/src/types.rs b/src/types.rs index 0014090..e3f0a54 100644 --- a/src/types.rs +++ b/src/types.rs @@ -8,7 +8,6 @@ pub use element_name::ElementName; use iced::advanced::widget::Id; use iced::theme::Mode; use iced::widget::{pane_grid, text_editor}; -use iced::window; use iced_anim::Event; use iced_material::Theme; pub use project::Project; @@ -51,7 +50,7 @@ pub enum Message { FileSaved(Result<PathBuf, Error>), CloseApp, EscapePressed, - WindowEvent(window::Event), + CloseRequest, } #[derive(Debug, Clone, Copy)] |
