From f73bacb454615566abdbf45065e3fd11a3276d93 Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Thu, 16 Jan 2020 07:12:59 +0100 Subject: Add file events to `iced_native::window::Event` --- winit/src/application.rs | 7 ++++--- winit/src/subscription.rs | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) (limited to 'winit') diff --git a/winit/src/application.rs b/winit/src/application.rs index a712632e..406443d3 100644 --- a/winit/src/application.rs +++ b/winit/src/application.rs @@ -192,9 +192,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, 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 -- cgit From b3106738eba09a7dec98f28738ab29996654491f Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Thu, 16 Jan 2020 07:18:17 +0100 Subject: Produce new window file events in `iced_winit` --- winit/src/application.rs | 31 +++++++++++++++++++++---------- 1 file changed, 21 insertions(+), 10 deletions(-) (limited to 'winit') diff --git a/winit/src/application.rs b/winit/src/application.rs index 406443d3..42511fb0 100644 --- a/winit/src/application.rs +++ b/winit/src/application.rs @@ -302,6 +302,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, @@ -370,17 +382,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)); } _ => {} }, -- cgit