commit 7b1fe7e5f2b92f025063cc98ebdb1791945e2f4a
parent 803a9ba98d6976c71e92973e3af6096476984fa3
Author: Leonardo Hernández Hernández <leohdz172@protonmail.com>
Date: Fri, 16 Dec 2022 17:24:45 -0600
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
Diffstat:
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git 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;
}