From 2e50f8dee0f877f8192d04cc2c910fd9efe8451b Mon Sep 17 00:00:00 2001 From: Ivan Molodetskikh Date: Mon, 29 Jan 2024 10:17:26 +0400 Subject: [PATCH] Hardcode winit transform for now --- src/backend/winit.rs | 3 +-- src/niri.rs | 12 ++++++++++-- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/backend/winit.rs b/src/backend/winit.rs index cd8ceafd7..b11f8e791 100644 --- a/src/backend/winit.rs +++ b/src/backend/winit.rs @@ -16,7 +16,6 @@ use smithay::reexports::calloop::LoopHandle; use smithay::reexports::wayland_protocols::wp::presentation_time::server::wp_presentation_feedback; use smithay::reexports::winit::dpi::LogicalSize; use smithay::reexports::winit::window::WindowBuilder; -use smithay::utils::Transform; use super::RenderResult; use crate::niri::{RedrawState, State}; @@ -54,7 +53,7 @@ impl Winit { size: backend.window_size(), refresh: 60_000, }; - output.change_current_state(Some(mode), Some(Transform::Flipped180), None, None); + output.change_current_state(Some(mode), None, None, None); output.set_preferred(mode); let physical_properties = output.physical_properties(); diff --git a/src/niri.rs b/src/niri.rs index 424fa7127..b2d583be1 100644 --- a/src/niri.rs +++ b/src/niri.rs @@ -654,9 +654,13 @@ impl State { let scale = config.map(|c| c.scale).unwrap_or(1.); let scale = scale.clamp(1., 10.).ceil() as i32; - let transform = config + let mut transform = config .map(|c| c.transform.into()) .unwrap_or(Transform::Normal); + // FIXME: fix winit damage on other transforms. + if name == "winit" { + transform = Transform::Flipped180; + } if output.current_scale().integer_scale() != scale || output.current_transform() != transform @@ -1179,7 +1183,11 @@ impl Niri { let c = config.outputs.iter().find(|o| o.name == name); let scale = c.map(|c| c.scale).unwrap_or(1.); let scale = scale.clamp(1., 10.).ceil() as i32; - let transform = c.map(|c| c.transform.into()).unwrap_or(Transform::Normal); + let mut transform = c.map(|c| c.transform.into()).unwrap_or(Transform::Normal); + // FIXME: fix winit damage on other transforms. + if name == "winit" { + transform = Transform::Flipped180; + } drop(config); // Set scale and transform before adding to the layout since that will read the output size.