fix(linux): work area returns logical rect (#14637)

This commit is contained in:
Tony
2025-12-09 18:05:12 +08:00
committed by GitHub
parent 91becd9e4f
commit 251203b896
2 changed files with 10 additions and 3 deletions

View File

@@ -0,0 +1,6 @@
---
tauri: patch:bug
tauri-runtime-wry: patch:bug
---
Fix `Monitor::work_area` returns logical position and size inside the `PhysicalRect` on Linux

View File

@@ -4,14 +4,15 @@
use gtk::prelude::MonitorExt;
use tao::platform::unix::MonitorHandleExtUnix;
use tauri_runtime::dpi::{PhysicalPosition, PhysicalRect, PhysicalSize};
use tauri_runtime::dpi::{LogicalPosition, LogicalSize, PhysicalRect};
impl super::MonitorExt for tao::monitor::MonitorHandle {
fn work_area(&self) -> PhysicalRect<i32, u32> {
let rect = self.gdk_monitor().workarea();
let scale_factor = self.scale_factor();
PhysicalRect {
size: PhysicalSize::new(rect.width() as u32, rect.height() as u32),
position: PhysicalPosition::new(rect.x(), rect.y()),
size: LogicalSize::new(rect.width() as u32, rect.height() as u32).to_physical(scale_factor),
position: LogicalPosition::new(rect.x(), rect.y()).to_physical(scale_factor),
}
}
}