~ruther/dwl

7b1fe7e5f2b92f025063cc98ebdb1791945e2f4a — Leonardo Hernández Hernández 2 years ago 803a9ba
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
1 files changed, 2 insertions(+), 2 deletions(-)

M dwl.c
M dwl.c => dwl.c +2 -2
@@ 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;
		}

Do not follow this link