diff options
| author | 2024-06-11 19:41:05 +0200 | |
|---|---|---|
| committer | 2024-06-11 19:41:05 +0200 | |
| commit | 5d7dcf417c694853a606b8fb0a47a580277fc9c0 (patch) | |
| tree | 8209e3787ee4f4b8ef028fafc9635b1acf777c75 /winit | |
| parent | 83296a73ebbb3c02ed63dfb4661056a8a8962267 (diff) | |
| download | iced-5d7dcf417c694853a606b8fb0a47a580277fc9c0.tar.gz iced-5d7dcf417c694853a606b8fb0a47a580277fc9c0.tar.bz2 iced-5d7dcf417c694853a606b8fb0a47a580277fc9c0.zip  | |
Introduce `subscription::Event`
... and remove `PlatformSpecific` from `Event`
Diffstat (limited to '')
| -rw-r--r-- | winit/src/application.rs | 29 | ||||
| -rw-r--r-- | winit/src/multi_window.rs | 42 | 
2 files changed, 40 insertions, 31 deletions
diff --git a/winit/src/application.rs b/winit/src/application.rs index ed8715d8..d93ea42e 100644 --- a/winit/src/application.rs +++ b/winit/src/application.rs @@ -12,7 +12,8 @@ use crate::core::widget::operation;  use crate::core::window;  use crate::core::{Color, Event, Point, Size, Theme};  use crate::futures::futures; -use crate::futures::{Executor, Runtime, Subscription}; +use crate::futures::subscription::{self, Subscription}; +use crate::futures::{Executor, Runtime};  use crate::graphics;  use crate::graphics::compositor::{self, Compositor};  use crate::runtime::clipboard; @@ -574,12 +575,10 @@ async fn run_instance<A, E, C>(              event::Event::PlatformSpecific(event::PlatformSpecific::MacOS(                  event::MacOS::ReceivedUrl(url),              )) => { -                use crate::core::event; - -                events.push(Event::PlatformSpecific( -                    event::PlatformSpecific::MacOS(event::MacOS::ReceivedUrl( -                        url, -                    )), +                runtime.broadcast(subscription::Event::PlatformSpecific( +                    subscription::PlatformSpecific::MacOS( +                        subscription::MacOS::ReceivedUrl(url), +                    ),                  ));              }              event::Event::UserEvent(message) => { @@ -650,11 +649,11 @@ async fn run_instance<A, E, C>(                      _ => ControlFlow::Wait,                  }); -                runtime.broadcast( -                    redraw_event, -                    core::event::Status::Ignored, -                    window::Id::MAIN, -                ); +                runtime.broadcast(subscription::Event::Interaction { +                    window: window::Id::MAIN, +                    event: redraw_event, +                    status: core::event::Status::Ignored, +                });                  debug.draw_started();                  let new_mouse_interaction = user_interface.draw( @@ -744,7 +743,11 @@ async fn run_instance<A, E, C>(                  for (event, status) in                      events.drain(..).zip(statuses.into_iter())                  { -                    runtime.broadcast(event, status, window::Id::MAIN); +                    runtime.broadcast(subscription::Event::Interaction { +                        window: window::Id::MAIN, +                        event, +                        status, +                    });                  }                  if !messages.is_empty() diff --git a/winit/src/multi_window.rs b/winit/src/multi_window.rs index 13839828..2eaf9241 100644 --- a/winit/src/multi_window.rs +++ b/winit/src/multi_window.rs @@ -16,7 +16,8 @@ use crate::futures::futures::channel::oneshot;  use crate::futures::futures::executor;  use crate::futures::futures::task;  use crate::futures::futures::{Future, StreamExt}; -use crate::futures::{Executor, Runtime, Subscription}; +use crate::futures::subscription::{self, Subscription}; +use crate::futures::{Executor, Runtime};  use crate::graphics;  use crate::graphics::{compositor, Compositor};  use crate::multi_window::window_manager::WindowManager; @@ -585,16 +586,13 @@ async fn run_instance<A, E, C>(                              event::MacOS::ReceivedUrl(url),                          ),                      ) => { -                        use crate::core::event; - -                        events.push(( -                            window::Id::MAIN, -                            event::Event::PlatformSpecific( -                                event::PlatformSpecific::MacOS( -                                    event::MacOS::ReceivedUrl(url), +                        runtime.broadcast( +                            subscription::Event::PlatformSpecific( +                                subscription::PlatformSpecific::MacOS( +                                    subscription::MacOS::ReceivedUrl(url),                                  ),                              ), -                        )); +                        );                      }                      event::Event::UserEvent(message) => {                          messages.push(message); @@ -655,11 +653,11 @@ async fn run_instance<A, E, C>(                              window.mouse_interaction = new_mouse_interaction;                          } -                        runtime.broadcast( -                            redraw_event.clone(), -                            core::event::Status::Ignored, -                            id, -                        ); +                        runtime.broadcast(subscription::Event::Interaction { +                            window: id, +                            event: redraw_event, +                            status: core::event::Status::Ignored, +                        });                          let _ = control_sender.start_send(Control::ChangeFlow(                              match ui_state { @@ -866,15 +864,23 @@ async fn run_instance<A, E, C>(                                  .into_iter()                                  .zip(statuses.into_iter())                              { -                                runtime.broadcast(event, status, id); +                                runtime.broadcast( +                                    subscription::Event::Interaction { +                                        window: id, +                                        event, +                                        status, +                                    }, +                                );                              }                          }                          for (id, event) in events.drain(..) {                              runtime.broadcast( -                                event, -                                core::event::Status::Ignored, -                                id, +                                subscription::Event::Interaction { +                                    window: id, +                                    event, +                                    status: core::event::Status::Ignored, +                                },                              );                          }  | 
