diff options
| author | Ivan Molodetskikh <yalterz@gmail.com> | 2024-04-24 10:04:19 +0400 |
|---|---|---|
| committer | Ivan Molodetskikh <yalterz@gmail.com> | 2024-04-24 12:26:59 +0400 |
| commit | dc1d2b706ce43d9fb7caac75b839a0bfc6ded029 (patch) | |
| tree | cd25d803bacd42c0efcb245ca55f64fcba5e14c8 /src/niri.rs | |
| parent | f9b008163c01cd5f7141298b980daba1c1731ea2 (diff) | |
| download | niri-dc1d2b706ce43d9fb7caac75b839a0bfc6ded029.tar.gz niri-dc1d2b706ce43d9fb7caac75b839a0bfc6ded029.tar.bz2 niri-dc1d2b706ce43d9fb7caac75b839a0bfc6ded029.zip | |
Implement ideal scale factor guessing
Diffstat (limited to 'src/niri.rs')
| -rw-r--r-- | src/niri.rs | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/src/niri.rs b/src/niri.rs index 605f5c60..10fc31a7 100644 --- a/src/niri.rs +++ b/src/niri.rs @@ -116,6 +116,7 @@ use crate::ui::config_error_notification::ConfigErrorNotification; use crate::ui::exit_confirm_dialog::ExitConfirmDialog; use crate::ui::hotkey_overlay::HotkeyOverlay; use crate::ui::screenshot_ui::{ScreenshotUi, ScreenshotUiRenderElement}; +use crate::utils::scale::guess_monitor_scale; use crate::utils::spawning::CHILD_ENV; use crate::utils::{ center, center_f64, get_monotonic_time, ipc_transform_to_smithay, logical_output, @@ -934,7 +935,11 @@ impl State { let config = self.niri.config.borrow_mut(); let config = config.outputs.iter().find(|o| o.name == name); - let scale = config.map(|c| c.scale).unwrap_or(1.); + let scale = config.map(|c| c.scale).unwrap_or_else(|| { + let size_mm = output.physical_properties().size; + let resolution = output.current_mode().unwrap().size; + guess_monitor_scale(size_mm, resolution) + }); let scale = scale.clamp(1., 10.).ceil() as i32; let mut transform = config @@ -1565,7 +1570,11 @@ impl Niri { let config = self.config.borrow(); let c = config.outputs.iter().find(|o| o.name == name); - let scale = c.map(|c| c.scale).unwrap_or(1.); + let scale = c.map(|c| c.scale).unwrap_or_else(|| { + let size_mm = output.physical_properties().size; + let resolution = output.current_mode().unwrap().size; + guess_monitor_scale(size_mm, resolution) + }); let scale = scale.clamp(1., 10.).ceil() as i32; let mut transform = c .map(|c| ipc_transform_to_smithay(c.transform)) |
