From 7b1fe7e5f2b92f025063cc98ebdb1791945e2f4a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Leonardo=20Hern=C3=A1ndez=20Hern=C3=A1ndez?= Date: Fri, 16 Dec 2022 17:24:45 -0600 Subject: [PATCH] fix checking idle inhibit state checking `bypass_surface_visibility` first, could cause that even if the idle inhibitor is being destroyed it will disable idle tracking and if we couldn't get its scene tree, then assume that the surface is visible --- dwl.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dwl.c b/dwl.c index 2bcb8b1..f535baf 100644 --- a/dwl.c +++ b/dwl.c @@ -627,8 +627,8 @@ checkidleinhibitor(struct wlr_surface *exclude) wl_list_for_each(inhibitor, &idle_inhibit_mgr->inhibitors, link) { struct wlr_surface *surface = wlr_surface_get_root_surface(inhibitor->surface); struct wlr_scene_tree *tree = surface->data; - if (bypass_surface_visibility || (exclude != surface - && tree && tree->node.enabled)) { + if (exclude != surface && (bypass_surface_visibility || (!tree + || tree->node.enabled))) { inhibited = 1; break; }