Add file events to iced_native:🪟:Event
This commit is contained in:
parent
5de404ddd9
commit
f73bacb454
@ -9,7 +9,7 @@ use crate::{
|
||||
/// additional events, feel free to [open an issue] and share your use case!_
|
||||
///
|
||||
/// [open an issue]: https://github.com/hecrj/iced/issues
|
||||
#[derive(PartialEq, Clone, Copy, Debug)]
|
||||
#[derive(PartialEq, Clone, Debug)]
|
||||
pub enum Event {
|
||||
/// A keyboard event
|
||||
Keyboard(keyboard::Event),
|
||||
|
@ -159,7 +159,7 @@ where
|
||||
self.children.iter_mut().zip(layout.children()).for_each(
|
||||
|(child, layout)| {
|
||||
child.widget.on_event(
|
||||
event,
|
||||
event.clone(),
|
||||
layout,
|
||||
cursor_position,
|
||||
messages,
|
||||
|
@ -160,7 +160,7 @@ where
|
||||
self.children.iter_mut().zip(layout.children()).for_each(
|
||||
|(child, layout)| {
|
||||
child.widget.on_event(
|
||||
event,
|
||||
event.clone(),
|
||||
layout,
|
||||
cursor_position,
|
||||
messages,
|
||||
|
@ -1,5 +1,7 @@
|
||||
use std::path::PathBuf;
|
||||
|
||||
/// A window-related event.
|
||||
#[derive(PartialEq, Clone, Copy, Debug)]
|
||||
#[derive(PartialEq, Clone, Debug)]
|
||||
pub enum Event {
|
||||
/// A window was resized
|
||||
Resized {
|
||||
@ -9,4 +11,22 @@ pub enum Event {
|
||||
/// The new height of the window (in units)
|
||||
height: u32,
|
||||
},
|
||||
|
||||
/// A file is being hovered over the window.
|
||||
///
|
||||
/// When the user hovers multiple files at once, this event will be emitted
|
||||
/// for each file separately.
|
||||
FileHovered(PathBuf),
|
||||
|
||||
/// A file has beend dropped into the window.
|
||||
///
|
||||
/// When the user drops multiple files at once, this event will be emitted
|
||||
/// for each file separately.
|
||||
FileDropped(PathBuf),
|
||||
|
||||
/// A file was hovered, but has exited the window.
|
||||
///
|
||||
/// There will be a single `FilesLeft` event triggered even if multiple
|
||||
/// files were hovered.
|
||||
FilesLeft,
|
||||
}
|
||||
|
@ -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,
|
||||
|
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user