From 43df7fad46033692abc6a2b223e6d98f8b7a5aed Mon Sep 17 00:00:00 2001 From: tet Date: Tue, 21 May 2024 22:43:42 +0000 Subject: Implement wlr-output-management protocol fix: wlr_output_management use WeakOutput --- src/handlers/mod.rs | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) (limited to 'src/handlers') diff --git a/src/handlers/mod.rs b/src/handlers/mod.rs index 845faf08..f288e24f 100644 --- a/src/handlers/mod.rs +++ b/src/handlers/mod.rs @@ -68,9 +68,13 @@ use crate::protocols::foreign_toplevel::{ self, ForeignToplevelHandler, ForeignToplevelManagerState, }; use crate::protocols::gamma_control::{GammaControlHandler, GammaControlManagerState}; +use crate::protocols::output_management::{OutputManagementHandler, OutputManagementManagerState}; use crate::protocols::screencopy::{Screencopy, ScreencopyHandler}; use crate::utils::{output_size, send_scale_transform}; -use crate::{delegate_foreign_toplevel, delegate_gamma_control, delegate_screencopy}; +use crate::{ + delegate_foreign_toplevel, delegate_gamma_control, delegate_output_management, + delegate_screencopy, +}; impl SeatHandler for State { type KeyboardFocus = WlSurface; @@ -545,3 +549,15 @@ delegate_xdg_activation!(State); impl FractionalScaleHandler for State {} delegate_fractional_scale!(State); + +impl OutputManagementHandler for State { + fn output_management_state(&mut self) -> &mut OutputManagementManagerState { + &mut self.niri.output_management_state + } + + fn apply_output_config(&mut self, config: Vec) { + self.niri.config.borrow_mut().outputs = config; + self.reload_output_config(); + } +} +delegate_output_management!(State); -- cgit