Add window::monitor_size task
This commit is contained in:
parent
5195a59e20
commit
d7d8b67cdc
2 changed files with 23 additions and 1 deletions
|
|
@ -175,6 +175,9 @@ pub enum Action {
|
|||
/// Set the window size increment.
|
||||
SetResizeIncrements(Id, Option<Size>),
|
||||
|
||||
/// Get the size of the monitor on which the window currently resides in logical dimensions.
|
||||
GetMonitorSize(Id, oneshot::Sender<Option<Size>>),
|
||||
|
||||
/// Redraws all the windows.
|
||||
RedrawAll,
|
||||
|
||||
|
|
@ -491,3 +494,10 @@ pub fn enable_mouse_passthrough<Message>(id: Id) -> Task<Message> {
|
|||
pub fn disable_mouse_passthrough<Message>(id: Id) -> Task<Message> {
|
||||
task::effect(crate::Action::Window(Action::DisableMousePassthrough(id)))
|
||||
}
|
||||
|
||||
/// Get the size of the monitor on which the window currently resides in logical dimensions.
|
||||
pub fn monitor_size(id: Id) -> Task<Option<Size>> {
|
||||
task::oneshot(move |channel| {
|
||||
crate::Action::Window(Action::GetMonitorSize(id, channel))
|
||||
})
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1631,7 +1631,7 @@ fn run_action<'a, P, C>(
|
|||
let _ = channel.send(core::window::Screenshot::new(
|
||||
bytes,
|
||||
window.state.physical_size(),
|
||||
window.state.viewport().scale_factor(),
|
||||
window.state.scale_factor(),
|
||||
));
|
||||
}
|
||||
}
|
||||
|
|
@ -1645,6 +1645,18 @@ fn run_action<'a, P, C>(
|
|||
let _ = window.raw.set_cursor_hittest(true);
|
||||
}
|
||||
}
|
||||
window::Action::GetMonitorSize(id, channel) => {
|
||||
if let Some(window) = window_manager.get(id) {
|
||||
let size = window.raw.current_monitor().map(|monitor| {
|
||||
let scale = window.state.scale_factor();
|
||||
let size = monitor.size().to_logical(f64::from(scale));
|
||||
|
||||
Size::new(size.width, size.height)
|
||||
});
|
||||
|
||||
let _ = channel.send(size);
|
||||
}
|
||||
}
|
||||
window::Action::RedrawAll => {
|
||||
for (_id, window) in window_manager.iter_mut() {
|
||||
window.raw.request_redraw();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue