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.
This commit is contained in:
parent
1c20570c0e
commit
14e5d03a1e
2 changed files with 5 additions and 14 deletions
|
|
@ -8,7 +8,7 @@ project('loupe', 'rust',
|
||||||
i18n = import('i18n')
|
i18n = import('i18n')
|
||||||
gnome = import('gnome')
|
gnome = import('gnome')
|
||||||
|
|
||||||
dependency('gtk4', version: '>=4.12.0')
|
dependency('gtk4', version: '>=4.13.6')
|
||||||
dependency('libadwaita-1', version: '>=1.4.0')
|
dependency('libadwaita-1', version: '>=1.4.0')
|
||||||
dependency('gweather4', version: '>=4.0.0')
|
dependency('gweather4', version: '>=4.0.0')
|
||||||
# Required by glycin crate
|
# Required by glycin crate
|
||||||
|
|
|
||||||
|
|
@ -313,20 +313,11 @@ impl imp::LpImage {
|
||||||
if let Some(monitor) = display.monitor_at_surface(&surface) {
|
if let Some(monitor) = display.monitor_at_surface(&surface) {
|
||||||
let hidpi_scale = self.scaling();
|
let hidpi_scale = self.scaling();
|
||||||
let monitor_geometry = monitor.geometry();
|
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
|
return Some((
|
||||||
// <https://gitlab.gnome.org/GNOME/gtk/-/issues/5391>
|
monitor_geometry.width() as f64 * hidpi_scale,
|
||||||
let physical_geometry = if hidpi_scale == obj.scale_factor() as f64 {
|
monitor_geometry.height() as f64 * hidpi_scale,
|
||||||
monitor_size
|
));
|
||||||
} else {
|
|
||||||
(monitor_size.0 * hidpi_scale, monitor_size.1 * hidpi_scale)
|
|
||||||
};
|
|
||||||
|
|
||||||
return Some(physical_geometry);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue