aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorIvan Molodetskikh <yalterz@gmail.com>2024-05-05 12:39:20 +0400
committerIvan Molodetskikh <yalterz@gmail.com>2024-05-05 12:39:20 +0400
commit2e4a2e13b175fcbb0fef58214f7de5b60775214a (patch)
treea3e71dbe9986919a012e003be0d563d109e68505 /src
parentdf0ee996ee0c70d4fb0fb853535e1563da3c0d09 (diff)
downloadniri-2e4a2e13b175fcbb0fef58214f7de5b60775214a.tar.gz
niri-2e4a2e13b175fcbb0fef58214f7de5b60775214a.tar.bz2
niri-2e4a2e13b175fcbb0fef58214f7de5b60775214a.zip
Make missing scale = automatic selection
That was the intention, but I missed it before.
Diffstat (limited to 'src')
-rw-r--r--src/niri.rs11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/niri.rs b/src/niri.rs
index b6bfb84d..aee3650b 100644
--- a/src/niri.rs
+++ b/src/niri.rs
@@ -1014,7 +1014,7 @@ 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_else(|| {
+ 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)
@@ -1077,7 +1077,12 @@ impl State {
niri_ipc::ModeToSet::Specific(mode) => Some(mode),
}
}
- niri_ipc::OutputAction::Scale { scale } => config.scale = scale,
+ niri_ipc::OutputAction::Scale { scale } => {
+ config.scale = match scale {
+ niri_ipc::ScaleToSet::Automatic => None,
+ niri_ipc::ScaleToSet::Specific(scale) => Some(scale),
+ }
+ }
niri_ipc::OutputAction::Transform { transform } => config.transform = transform,
niri_ipc::OutputAction::Position { position } => {
config.position = match position {
@@ -1666,7 +1671,7 @@ 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_else(|| {
+ let scale = c.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)