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;
 		}