diff options
| -rw-r--r-- | src/input/mod.rs | 5 | ||||
| -rw-r--r-- | src/niri.rs | 10 |
2 files changed, 12 insertions, 3 deletions
diff --git a/src/input/mod.rs b/src/input/mod.rs index 42f90879..876295a2 100644 --- a/src/input/mod.rs +++ b/src/input/mod.rs @@ -3931,9 +3931,8 @@ impl State { if switch == Switch::Lid { let is_closed = evt.state() == SwitchState::On; - debug!("lid switch {}", if is_closed { "closed" } else { "opened" }); - self.niri.is_lid_closed = is_closed; - self.backend.on_output_config_changed(&mut self.niri); + trace!("lid switch {}", if is_closed { "closed" } else { "opened" }); + self.set_lid_closed(is_closed); } let action = { diff --git a/src/niri.rs b/src/niri.rs index 01deae02..d5c6a8b5 100644 --- a/src/niri.rs +++ b/src/niri.rs @@ -726,6 +726,16 @@ impl State { self.niri.notified_activity_this_iteration = false; } + pub fn set_lid_closed(&mut self, is_closed: bool) { + if self.niri.is_lid_closed == is_closed { + return; + } + + debug!("laptop lid {}", if is_closed { "closed" } else { "opened" }); + self.niri.is_lid_closed = is_closed; + self.backend.on_output_config_changed(&mut self.niri); + } + fn refresh(&mut self) { let _span = tracy_client::span!("State::refresh"); |
