From 566a05494a88422579d021e7d23d985cdc2cd63c Mon Sep 17 00:00:00 2001 From: Julian Orth Date: Fri, 29 Mar 2024 18:37:03 +0100 Subject: [PATCH] surface: don't destroy idle inhibitors when destroying node --- src/ifs/wl_surface.rs | 6 +++--- src/ifs/wl_surface/zwp_idle_inhibitor_v1.rs | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/ifs/wl_surface.rs b/src/ifs/wl_surface.rs index df00cb99..93dd8081 100644 --- a/src/ifs/wl_surface.rs +++ b/src/ifs/wl_surface.rs @@ -236,7 +236,7 @@ pub struct WlSurface { cursors: SmallMap, 1>, pub dnd_icons: SmallMap, 1>, pub tracker: Tracker, - idle_inhibitors: CopyHashMap>, + idle_inhibitors: SmallMap, 1>, viewporter: CloneCell>>, output: CloneCell>, fractional_scale: CloneCell>>, @@ -1186,7 +1186,7 @@ impl WlSurface { pub fn set_visible(&self, visible: bool) { self.visible.set(visible); - for inhibitor in self.idle_inhibitors.lock().values() { + for (_, inhibitor) in &self.idle_inhibitors { if visible { inhibitor.activate(); } else { @@ -1213,7 +1213,7 @@ impl WlSurface { for (_, constraint) in &self.constraints { constraint.deactivate(); } - for (_, inhibitor) in self.idle_inhibitors.lock().drain() { + for (_, inhibitor) in &self.idle_inhibitors { inhibitor.deactivate(); } let children = self.children.borrow(); diff --git a/src/ifs/wl_surface/zwp_idle_inhibitor_v1.rs b/src/ifs/wl_surface/zwp_idle_inhibitor_v1.rs index 8b5aeebc..12f1f003 100644 --- a/src/ifs/wl_surface/zwp_idle_inhibitor_v1.rs +++ b/src/ifs/wl_surface/zwp_idle_inhibitor_v1.rs @@ -32,7 +32,7 @@ impl ZwpIdleInhibitorV1 { } pub fn install(self: &Rc) -> Result<(), ZwpIdleInhibitorV1Error> { - self.surface.idle_inhibitors.set(self.id, self.clone()); + self.surface.idle_inhibitors.insert(self.id, self.clone()); if self.surface.visible.get() { self.activate(); }