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
This commit is contained in:
parent
803a9ba98d
commit
7b1fe7e5f2
4
dwl.c
4
dwl.c
|
@ -627,8 +627,8 @@ checkidleinhibitor(struct wlr_surface *exclude)
|
||||||
wl_list_for_each(inhibitor, &idle_inhibit_mgr->inhibitors, link) {
|
wl_list_for_each(inhibitor, &idle_inhibit_mgr->inhibitors, link) {
|
||||||
struct wlr_surface *surface = wlr_surface_get_root_surface(inhibitor->surface);
|
struct wlr_surface *surface = wlr_surface_get_root_surface(inhibitor->surface);
|
||||||
struct wlr_scene_tree *tree = surface->data;
|
struct wlr_scene_tree *tree = surface->data;
|
||||||
if (bypass_surface_visibility || (exclude != surface
|
if (exclude != surface && (bypass_surface_visibility || (!tree
|
||||||
&& tree && tree->node.enabled)) {
|
|| tree->node.enabled))) {
|
||||||
inhibited = 1;
|
inhibited = 1;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue