diff --git a/src/ifs/wl_surface/zwp_idle_inhibitor_v1.rs b/src/ifs/wl_surface/zwp_idle_inhibitor_v1.rs index 3c945c5c..34d26581 100644 --- a/src/ifs/wl_surface/zwp_idle_inhibitor_v1.rs +++ b/src/ifs/wl_surface/zwp_idle_inhibitor_v1.rs @@ -43,11 +43,13 @@ impl ZwpIdleInhibitorV1 { } pub fn activate(self: &Rc) { - self.client.state.idle.add_inhibitor(self); + let state = &self.client.state; + state.idle.add_inhibitor(self); } pub fn deactivate(&self) { - self.client.state.idle.remove_inhibitor(self); + let state = &self.client.state; + state.idle.remove_inhibitor(self); } } diff --git a/src/state.rs b/src/state.rs index a6c53031..192e47f1 100644 --- a/src/state.rs +++ b/src/state.rs @@ -356,19 +356,22 @@ impl IdleState { pub fn add_inhibitor(&self, inhibitor: &Rc) { self.inhibitors.set(inhibitor.inhibit_id, inhibitor.clone()); - self.inhibitors_changed.set(true); - self.change.trigger(); + self.inhibitors_changed(); } pub fn remove_inhibitor(&self, inhibitor: &ZwpIdleInhibitorV1) { self.inhibitors.remove(&inhibitor.inhibit_id); - self.inhibitors_changed.set(true); - self.change.trigger(); + self.inhibitors_changed(); if self.inhibitors.is_empty() { self.resume_inhibited_notifications(); } } + fn inhibitors_changed(&self) { + self.inhibitors_changed.set(true); + self.change.trigger(); + } + fn resume_inhibited_notifications(&self) { for notification in self.inhibited_idle_notifications.lock().drain_values() { notification.resume.trigger();