From e400f972c1fe6fa4f70f8cfe559ded680e6cf740 Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Tue, 4 Jun 2024 23:20:33 +0200 Subject: Introduce `window::Id` to `Event` subscriptions And remove `window::Id` from `Event` altogether. --- winit/src/application.rs | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'winit/src/application.rs') diff --git a/winit/src/application.rs b/winit/src/application.rs index 4aed1eee..ed8715d8 100644 --- a/winit/src/application.rs +++ b/winit/src/application.rs @@ -623,7 +623,6 @@ async fn run_instance( // Then, we can use the `interface_state` here to decide if a redraw // is needed right away, or simply wait until a specific time. let redraw_event = Event::Window( - window::Id::MAIN, window::Event::RedrawRequested(Instant::now()), ); @@ -651,7 +650,11 @@ async fn run_instance( _ => ControlFlow::Wait, }); - runtime.broadcast(redraw_event, core::event::Status::Ignored); + runtime.broadcast( + redraw_event, + core::event::Status::Ignored, + window::Id::MAIN, + ); debug.draw_started(); let new_mouse_interaction = user_interface.draw( @@ -714,7 +717,6 @@ async fn run_instance( state.update(&window, &window_event, &mut debug); if let Some(event) = conversion::window_event( - window::Id::MAIN, window_event, state.scale_factor(), state.modifiers(), @@ -742,7 +744,7 @@ async fn run_instance( for (event, status) in events.drain(..).zip(statuses.into_iter()) { - runtime.broadcast(event, status); + runtime.broadcast(event, status, window::Id::MAIN); } if !messages.is_empty() -- cgit From 5d7dcf417c694853a606b8fb0a47a580277fc9c0 Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Tue, 11 Jun 2024 19:41:05 +0200 Subject: Introduce `subscription::Event` ... and remove `PlatformSpecific` from `Event` --- winit/src/application.rs | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) (limited to 'winit/src/application.rs') 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( 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( _ => 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( 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() -- cgit