diff options
author | 2024-02-22 09:33:13 +0100 | |
---|---|---|
committer | 2024-02-22 09:33:13 +0100 | |
commit | a27267b8fbd7cfc1033c1ca9aff9a57ae57f0030 (patch) | |
tree | 4ef2366666b5df94a5dde191088c7d7385a1c788 /winit/src/multi_window.rs | |
parent | ce4eef64cdde5f3e5809c963a1d84c933d27e7ae (diff) | |
parent | 9339728b6863523152fc40dd86fb78d1461c2b40 (diff) | |
download | iced-a27267b8fbd7cfc1033c1ca9aff9a57ae57f0030.tar.gz iced-a27267b8fbd7cfc1033c1ca9aff9a57ae57f0030.tar.bz2 iced-a27267b8fbd7cfc1033c1ca9aff9a57ae57f0030.zip |
Merge pull request #2280 from n1ght-hunter/add-action-fetch-location
add fetch_location action
Diffstat (limited to '')
-rw-r--r-- | winit/src/multi_window.rs | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/winit/src/multi_window.rs b/winit/src/multi_window.rs index c63dd433..03066d6c 100644 --- a/winit/src/multi_window.rs +++ b/winit/src/multi_window.rs @@ -10,7 +10,7 @@ use crate::core::mouse; use crate::core::renderer; use crate::core::widget::operation; use crate::core::window; -use crate::core::Size; +use crate::core::{Point, Size}; use crate::futures::futures::channel::mpsc; use crate::futures::futures::{task, Future, StreamExt}; use crate::futures::{Executor, Runtime, Subscription}; @@ -993,6 +993,25 @@ fn run_command<A, C, E>( window.raw.set_minimized(minimized); } } + window::Action::FetchPosition(id, callback) => { + if let Some(window) = window_manager.get_mut(id) { + let position = window + .raw + .inner_position() + .map(|position| { + let position = position.to_logical::<f32>( + window.raw.scale_factor(), + ); + + Point::new(position.x, position.y) + }) + .ok(); + + proxy + .send_event(callback(position)) + .expect("Send message to event loop"); + } + } window::Action::Move(id, position) => { if let Some(window) = window_manager.get_mut(id) { window.raw.set_outer_position( |