diff options
Diffstat (limited to 'winit/src/application.rs')
-rw-r--r-- | winit/src/application.rs | 38 |
1 files changed, 25 insertions, 13 deletions
diff --git a/winit/src/application.rs b/winit/src/application.rs index 9e8eaebb..a14924ac 100644 --- a/winit/src/application.rs +++ b/winit/src/application.rs @@ -209,9 +209,10 @@ pub trait Application: Sized { ); debug.event_processing_started(); - events.iter().for_each(|event| { - subscription_pool.broadcast_event(*event) - }); + events + .iter() + .cloned() + .for_each(|event| subscription_pool.broadcast_event(event)); let mut messages = user_interface.update( &renderer, @@ -330,6 +331,18 @@ pub trait Application: Sized { event: window_event, .. } => match window_event { + WindowEvent::Resized(new_size) => { + events.push(Event::Window(window::Event::Resized { + width: new_size.width.round() as u32, + height: new_size.height.round() as u32, + })); + + size = new_size; + resized = true; + } + WindowEvent::CloseRequested => { + *control_flow = ControlFlow::Exit; + } WindowEvent::CursorMoved { position, .. } => { events.push(Event::Mouse(mouse::Event::CursorMoved { x: position.x as f32, @@ -398,17 +411,16 @@ pub trait Application: Sized { modifiers: conversion::modifiers_state(modifiers), })); } - WindowEvent::CloseRequested => { - *control_flow = ControlFlow::Exit; + WindowEvent::HoveredFile(path) => { + events + .push(Event::Window(window::Event::FileHovered(path))); } - WindowEvent::Resized(new_size) => { - events.push(Event::Window(window::Event::Resized { - width: new_size.width.round() as u32, - height: new_size.height.round() as u32, - })); - - size = new_size; - resized = true; + WindowEvent::DroppedFile(path) => { + events + .push(Event::Window(window::Event::FileDropped(path))); + } + WindowEvent::HoveredFileCancelled => { + events.push(Event::Window(window::Event::FilesHoveredLeft)); } _ => {} }, |