Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion crates/winit/src/app.rs
Original file line number Diff line number Diff line change
Expand Up @@ -307,8 +307,12 @@ impl Application {
}

/// Send an event
pub fn send_event(&mut self, event: PlatformEvent, scale_factor: f64) {
pub fn send_event(&mut self, event: PlatformEvent) {
self.events.push(event);
}

// Process queued events
pub fn flush_events(&mut self, scale_factor: f64) {
self.process_events(scale_factor);
}

Expand Down
16 changes: 11 additions & 5 deletions crates/winit/src/renderer.rs
Original file line number Diff line number Diff line change
Expand Up @@ -121,13 +121,15 @@ impl<'a, State: Clone + 'static> WinitRenderer<'a, State> {
}
}

// Send and process an event
// Send an event
fn send_event(&mut self, event: PlatformEvent) {
self.state.created_state().app.send_event(event);
}

// Process queued events
fn flush_events(&mut self) {
let scale_factor = self.scale_factor();
self.state
.created_state()
.app
.send_event(event, scale_factor);
self.state.created_state().app.flush_events(scale_factor);
}

/// Get the current scale factor of the Window
Expand Down Expand Up @@ -515,6 +517,10 @@ impl<State: Clone> ApplicationHandler<EventLoopMessage> for WinitRenderer<'_, St
}
}

fn about_to_wait(&mut self, _event_loop: &winit::event_loop::ActiveEventLoop) {
self.flush_events();
}

fn exiting(&mut self, _event_loop: &winit::event_loop::ActiveEventLoop) {
self.run_on_exit();
}
Expand Down
Loading