aboutsummaryrefslogtreecommitdiff
path: root/src/handlers
diff options
context:
space:
mode:
Diffstat (limited to 'src/handlers')
-rw-r--r--src/handlers/mod.rs18
1 files changed, 17 insertions, 1 deletions
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<niri_config::Output>) {
+ self.niri.config.borrow_mut().outputs = config;
+ self.reload_output_config();
+ }
+}
+delegate_output_management!(State);