diff options
Diffstat (limited to '')
| -rw-r--r-- | dwl.c | 7 | 
1 files changed, 4 insertions, 3 deletions
| @@ -596,8 +596,9 @@ checkidleinhibitor(struct wlr_surface *exclude)  	int inhibited = 0;  	struct wlr_idle_inhibitor_v1 *inhibitor;  	wl_list_for_each(inhibitor, &idle_inhibit_mgr->inhibitors, link) { -		struct wlr_scene_tree *tree = inhibitor->surface->data; -		if (bypass_surface_visibility || (exclude != inhibitor->surface +		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->node.enabled)) {  			inhibited = 1;  			break; @@ -1014,7 +1015,7 @@ destroyidleinhibitor(struct wl_listener *listener, void *data)  {  	/* `data` is the wlr_surface of the idle inhibitor being destroyed,  	 * at this point the idle inhibitor is still in the list of the manager */ -	checkidleinhibitor(data); +	checkidleinhibitor(wlr_surface_get_root_surface(data));  }  void | 
