From 59885e9a363dd73b3a3e8dd125decf0e34130c59 Mon Sep 17 00:00:00 2001 From: Night_Hunter Date: Thu, 22 Feb 2024 17:13:12 +1300 Subject: Add `fetch_location` command to `window` module --- winit/src/multi_window.rs | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'winit/src/multi_window.rs') diff --git a/winit/src/multi_window.rs b/winit/src/multi_window.rs index c63dd433..3b00200b 100644 --- a/winit/src/multi_window.rs +++ b/winit/src/multi_window.rs @@ -1003,6 +1003,24 @@ fn run_command( ); } } + window::Action::FetchLocation(id, callback) => { + if let Some(window) = window_manager.get_mut(id) { + let position = window + .raw + .inner_position() + .map(|p| { + let pos = p.to_logical::( + window.raw.scale_factor(), + ); + crate::core::Point::new(pos.x, pos.y) + }) + .ok(); + + proxy + .send_event(callback(position)) + .expect("Send message to event loop"); + } + } window::Action::ChangeMode(id, mode) => { if let Some(window) = window_manager.get_mut(id) { window.raw.set_visible(conversion::visible(mode)); -- cgit From d6454b5d0ca4c3812d1614805de1094638153df1 Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Thu, 22 Feb 2024 09:19:51 +0100 Subject: Rename `fetch_location` to `fetch_position` --- winit/src/multi_window.rs | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) (limited to 'winit/src/multi_window.rs') diff --git a/winit/src/multi_window.rs b/winit/src/multi_window.rs index 3b00200b..c9056c9f 100644 --- a/winit/src/multi_window.rs +++ b/winit/src/multi_window.rs @@ -993,26 +993,17 @@ fn run_command( window.raw.set_minimized(minimized); } } - window::Action::Move(id, position) => { - if let Some(window) = window_manager.get_mut(id) { - window.raw.set_outer_position( - winit::dpi::LogicalPosition { - x: position.x, - y: position.y, - }, - ); - } - } - window::Action::FetchLocation(id, callback) => { + window::Action::FetchPosition(id, callback) => { if let Some(window) = window_manager.get_mut(id) { let position = window .raw .inner_position() - .map(|p| { - let pos = p.to_logical::( + .map(|position| { + let position = position.to_logical::( window.raw.scale_factor(), ); - crate::core::Point::new(pos.x, pos.y) + + crate::core::Point::new(position.x, position.y) }) .ok(); @@ -1021,6 +1012,16 @@ fn run_command( .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( + winit::dpi::LogicalPosition { + x: position.x, + y: position.y, + }, + ); + } + } window::Action::ChangeMode(id, mode) => { if let Some(window) = window_manager.get_mut(id) { window.raw.set_visible(conversion::visible(mode)); -- cgit From f693aa4bc4d9994d1dce81d4ec7ce0b15dfc1ee2 Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Thu, 22 Feb 2024 09:21:19 +0100 Subject: Use `crate::core::Point` instead of prefixing --- winit/src/multi_window.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'winit/src/multi_window.rs') diff --git a/winit/src/multi_window.rs b/winit/src/multi_window.rs index c9056c9f..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}; @@ -1003,7 +1003,7 @@ fn run_command( window.raw.scale_factor(), ); - crate::core::Point::new(position.x, position.y) + Point::new(position.x, position.y) }) .ok(); -- cgit