From ae33728a4eece27e6809dd4e57c86fdb5745f2d2 Mon Sep 17 00:00:00 2001 From: Victoria Brekenfeld Date: Wed, 6 Jul 2022 23:33:40 +0200 Subject: [PATCH] windowed: Fully initialize fake wl_output --- src/backend/winit.rs | 7 ++++--- src/backend/x11.rs | 15 ++++++++++++--- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/src/backend/winit.rs b/src/backend/winit.rs index d811c08c..98f1ace5 100644 --- a/src/backend/winit.rs +++ b/src/backend/winit.rs @@ -21,7 +21,7 @@ use smithay::{ DisplayHandle, }, }, - wayland::output::{Mode, Output, PhysicalProperties}, + wayland::output::{Mode, Output, PhysicalProperties, Scale}, }; use std::cell::RefCell; @@ -136,13 +136,14 @@ pub fn init_backend( }; let output = Output::new(name, props, None); let _global = output.create_global::(dh); + output.add_mode(mode); + output.set_preferred(mode); output.change_current_state( Some(mode), Some(Transform::Flipped180), - None, + Some(Scale::Integer(1)), Some((0, 0).into()), ); - output.set_preferred(mode); output.user_data().insert_if_missing(|| { RefCell::new(OutputConfig { mode: ( diff --git a/src/backend/x11.rs b/src/backend/x11.rs index 0e3c14bf..49151a11 100644 --- a/src/backend/x11.rs +++ b/src/backend/x11.rs @@ -20,9 +20,12 @@ use smithay::{ reexports::{ calloop::{ping, EventLoop, LoopHandle}, gbm::{Device as GbmDevice, FdWrapper}, - wayland_server::{protocol::wl_output::Subpixel, DisplayHandle}, + wayland_server::{ + protocol::wl_output::{Subpixel, Transform}, + DisplayHandle, + }, }, - wayland::output::{Mode, Output, PhysicalProperties}, + wayland::output::{Mode, Output, PhysicalProperties, Scale}, }; use std::{ cell::RefCell, @@ -73,8 +76,14 @@ impl X11State { refresh: 60_000, }; let output = Output::new(name, props, None); - output.change_current_state(Some(mode), None, None, Some((0, 0).into())); + output.add_mode(mode); output.set_preferred(mode); + output.change_current_state( + Some(mode), + Some(Transform::Normal), + Some(Scale::Integer(1)), + Some((0, 0).into()), + ); output.user_data().insert_if_missing(|| { RefCell::new(OutputConfig { mode: ((size.w as i32, size.h as i32), None),