diff options
Diffstat (limited to 'winit/src')
| -rw-r--r-- | winit/src/application.rs | 38 | ||||
| -rw-r--r-- | winit/src/subscription.rs | 2 | 
2 files changed, 26 insertions, 14 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));                  }                  _ => {}              }, diff --git a/winit/src/subscription.rs b/winit/src/subscription.rs index f55507af..bad68d55 100644 --- a/winit/src/subscription.rs +++ b/winit/src/subscription.rs @@ -86,7 +86,7 @@ impl Pool {              .values_mut()              .filter_map(|connection| connection.listener.as_mut())              .for_each(|listener| { -                if let Err(error) = listener.try_send(event) { +                if let Err(error) = listener.try_send(event.clone()) {                      log::error!(                          "Error sending event to subscription: {:?}",                          error  | 
