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` --- native/src/window/event.rs | 6 +++--- winit/src/application.rs | 31 +++++++++++++++++++++---------- 2 files changed, 24 insertions(+), 13 deletions(-) diff --git a/native/src/window/event.rs b/native/src/window/event.rs index c913385b..b177141a 100644 --- a/native/src/window/event.rs +++ b/native/src/window/event.rs @@ -26,7 +26,7 @@ pub enum Event { /// A file was hovered, but has exited the window. /// - /// There will be a single `FilesLeft` event triggered even if multiple - /// files were hovered. - FilesLeft, + /// There will be a single `FilesHoveredLeft` event triggered even if + /// multiple files were hovered. + FilesHoveredLeft, } 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