From 14e5d03a1e93cd06493fb8e19fddef65a05c0905 Mon Sep 17 00:00:00 2001 From: Sophie Herold Date: Sun, 11 Feb 2024 15:47:38 +0100 Subject: [PATCH] image/rendering: Use new GdkMonitor geometry units The bug that the geometry isn't returned in app pixels on wayland without scale-monitor-framebuffer was fixed in GDK. Therefore also require newer GTK version. --- meson.build | 2 +- src/widgets/image/rendering.rs | 17 ++++------------- 2 files changed, 5 insertions(+), 14 deletions(-) diff --git a/meson.build b/meson.build index 2258841..b34ebd2 100644 --- a/meson.build +++ b/meson.build @@ -8,7 +8,7 @@ project('loupe', 'rust', i18n = import('i18n') gnome = import('gnome') -dependency('gtk4', version: '>=4.12.0') +dependency('gtk4', version: '>=4.13.6') dependency('libadwaita-1', version: '>=1.4.0') dependency('gweather4', version: '>=4.0.0') # Required by glycin crate diff --git a/src/widgets/image/rendering.rs b/src/widgets/image/rendering.rs index 8d2535e..8e3d3b9 100644 --- a/src/widgets/image/rendering.rs +++ b/src/widgets/image/rendering.rs @@ -313,20 +313,11 @@ impl imp::LpImage { if let Some(monitor) = display.monitor_at_surface(&surface) { let hidpi_scale = self.scaling(); let monitor_geometry = monitor.geometry(); - let monitor_size = ( - monitor_geometry.width() as f64, - monitor_geometry.height() as f64, - ); - // Assume scale-monitor-framebuffer disabled for non-fractional scaling - // - let physical_geometry = if hidpi_scale == obj.scale_factor() as f64 { - monitor_size - } else { - (monitor_size.0 * hidpi_scale, monitor_size.1 * hidpi_scale) - }; - - return Some(physical_geometry); + return Some(( + monitor_geometry.width() as f64 * hidpi_scale, + monitor_geometry.height() as f64 * hidpi_scale, + )); } } }