summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatar Night_Hunter <samuelhuntnz@gmail.com>2022-12-10 01:54:57 +1300
committerLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2023-02-17 13:45:51 +0100
commit9f75f01ddb7a13a3ab1cffdfa59997cb5b131f72 (patch)
tree4bc488bc3f7040452f4f147bca5b346b11c3a25f
parentb9b0a9a1f400483f46ec053247c435ec7739f778 (diff)
downloadiced-9f75f01ddb7a13a3ab1cffdfa59997cb5b131f72.tar.gz
iced-9f75f01ddb7a13a3ab1cffdfa59997cb5b131f72.tar.bz2
iced-9f75f01ddb7a13a3ab1cffdfa59997cb5b131f72.zip
add action to get window id
-rw-r--r--native/src/window/action.rs4
-rw-r--r--winit/src/application.rs5
2 files changed, 9 insertions, 0 deletions
diff --git a/native/src/window/action.rs b/native/src/window/action.rs
index c6361449..ce36d129 100644
--- a/native/src/window/action.rs
+++ b/native/src/window/action.rs
@@ -76,6 +76,8 @@ pub enum Action<T> {
///
/// - **Web / Wayland:** Unsupported.
ChangeAlwaysOnTop(bool),
+ /// Fetch an identifier unique to the window.
+ FetchId(Box<dyn FnOnce(u64) -> T + 'static>),
}
impl<T> Action<T> {
@@ -105,6 +107,7 @@ impl<T> Action<T> {
Self::ChangeAlwaysOnTop(on_top) => {
Action::ChangeAlwaysOnTop(on_top)
}
+ Self::FetchId(o) => Action::FetchId(Box::new(move |s| f(o(s)))),
}
}
}
@@ -138,6 +141,7 @@ impl<T> fmt::Debug for Action<T> {
Self::ChangeAlwaysOnTop(on_top) => {
write!(f, "Action::AlwaysOnTop({on_top})")
}
+ Self::FetchId(_) => write!(f, "Action::FetchId"),
}
}
}
diff --git a/winit/src/application.rs b/winit/src/application.rs
index 1f37ffef..3fdec658 100644
--- a/winit/src/application.rs
+++ b/winit/src/application.rs
@@ -794,6 +794,11 @@ pub fn run_command<A, E>(
window::Action::ChangeAlwaysOnTop(on_top) => {
window.set_always_on_top(on_top);
}
+ window::Action::FetchId(tag) => {
+ proxy
+ .send_event(tag(window.id().into()))
+ .expect("Send message to event loop");
+ }
},
command::Action::System(action) => match action {
system::Action::QueryInformation(_tag) => {