summaryrefslogtreecommitdiffstats
path: root/winit/src
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón <hector0193@gmail.com>2020-01-16 18:34:29 +0100
committerLibravatar GitHub <noreply@github.com>2020-01-16 18:34:29 +0100
commit6ca5e6184f9f1c12b427bdafcce0b4e9fbc5bb14 (patch)
tree8ff337ba8503eb1af3f2211c5f969c2db87c96fd /winit/src
parent11495b48eec8cdb6e4e3ae450983b26fe6b2eb15 (diff)
parentb3106738eba09a7dec98f28738ab29996654491f (diff)
downloadiced-6ca5e6184f9f1c12b427bdafcce0b4e9fbc5bb14.tar.gz
iced-6ca5e6184f9f1c12b427bdafcce0b4e9fbc5bb14.tar.bz2
iced-6ca5e6184f9f1c12b427bdafcce0b4e9fbc5bb14.zip
Merge pull request #162 from hecrj/feature/window-file-events
Window file events
Diffstat (limited to 'winit/src')
-rw-r--r--winit/src/application.rs38
-rw-r--r--winit/src/subscription.rs2
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