diff --git a/src/platform_impl/linux/wayland/output.rs b/src/platform_impl/linux/wayland/output.rs index b8547e6b..4e288cdc 100644 --- a/src/platform_impl/linux/wayland/output.rs +++ b/src/platform_impl/linux/wayland/output.rs @@ -3,7 +3,7 @@ use sctk::reexports::client::Proxy; use sctk::output::OutputData; -use crate::dpi::{PhysicalPosition, PhysicalSize}; +use crate::dpi::{LogicalPosition, PhysicalPosition, PhysicalSize}; use crate::event_loop::ControlFlow; use crate::platform_impl::platform::VideoMode as PlatformVideoMode; @@ -92,7 +92,18 @@ impl MonitorHandle { #[inline] pub fn position(&self) -> PhysicalPosition { let output_data = self.proxy.data::().unwrap(); - output_data.with_output_info(|info| info.location).into() + output_data.with_output_info(|info| { + info.logical_position.map_or_else( + || { + LogicalPosition::::from(info.location) + .to_physical(info.scale_factor as f64) + }, + |logical_position| { + LogicalPosition::::from(logical_position) + .to_physical(info.scale_factor as f64) + }, + ) + }) } #[inline]