aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorIvan Molodetskikh <yalterz@gmail.com>2024-06-18 11:01:18 +0300
committerIvan Molodetskikh <yalterz@gmail.com>2024-06-18 14:01:34 +0300
commit986f2c14abad1b7a0663439bddee4e73d59dbd1a (patch)
tree32e9e265f28b22a1be831d961d22327b22549ff8 /src
parent793e1bdbc5fdbf99e264558375bd27cffabc4ec8 (diff)
downloadniri-986f2c14abad1b7a0663439bddee4e73d59dbd1a.tar.gz
niri-986f2c14abad1b7a0663439bddee4e73d59dbd1a.tar.bz2
niri-986f2c14abad1b7a0663439bddee4e73d59dbd1a.zip
Make scale use FloatOrInt
Diffstat (limited to 'src')
-rw-r--r--src/niri.rs21
1 files changed, 13 insertions, 8 deletions
diff --git a/src/niri.rs b/src/niri.rs
index 4817b6b0..fca93657 100644
--- a/src/niri.rs
+++ b/src/niri.rs
@@ -11,7 +11,9 @@ use std::{env, mem, thread};
use _server_decoration::server::org_kde_kwin_server_decoration_manager::Mode as KdeDecorationsMode;
use anyhow::{ensure, Context};
use calloop::futures::Scheduler;
-use niri_config::{Config, Key, Modifiers, PreviewRender, TrackLayout, WorkspaceReference};
+use niri_config::{
+ Config, FloatOrInt, Key, Modifiers, PreviewRender, TrackLayout, WorkspaceReference,
+};
use niri_ipc::Workspace;
use smithay::backend::allocator::Fourcc;
use smithay::backend::renderer::damage::OutputDamageTracker;
@@ -1048,11 +1050,14 @@ impl State {
.iter()
.find(|o| o.name.eq_ignore_ascii_case(&name));
- let scale = config.and_then(|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 = config
+ .and_then(|c| c.scale)
+ .map(|s| s.0)
+ .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 = closest_representable_scale(scale.clamp(0.1, 10.));
let mut transform = config
@@ -1118,7 +1123,7 @@ impl State {
niri_ipc::OutputAction::Scale { scale } => {
config.scale = match scale {
niri_ipc::ScaleToSet::Automatic => None,
- niri_ipc::ScaleToSet::Specific(scale) => Some(scale),
+ niri_ipc::ScaleToSet::Specific(scale) => Some(FloatOrInt(scale)),
}
}
niri_ipc::OutputAction::Transform { transform } => config.transform = transform,
@@ -1731,7 +1736,7 @@ impl Niri {
.outputs
.iter()
.find(|o| o.name.eq_ignore_ascii_case(&name));
- let scale = c.and_then(|c| c.scale).unwrap_or_else(|| {
+ let scale = c.and_then(|c| c.scale).map(|s| s.0).unwrap_or_else(|| {
let size_mm = output.physical_properties().size;
let resolution = output.current_mode().unwrap().size;
guess_monitor_scale(size_mm, resolution)