sway

i3-compatible Wayland compositor
git clone https://git.awy.one/sway
Log | Files | Refs | README | LICENSE

commit 583862e6d11c44bb7a66dbc4dbdf029b517df18b
parent cc482228a41e9e3e31b6b27143d5ed24e7dc5069
Author: Kenny Levinsen <kl@kl.wtf>
Date:   Tue, 11 Jun 2024 00:12:02 +0200

idle_inhibit: Check if layer surface output is enabled

While we we cannot easily check for true visibility of layer surfaces as
easily as for views, we can check at least check that the output
associated with the surface is enabled.

Diffstat:
Msway/desktop/idle_inhibit_v1.c | 7+++++--
1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/sway/desktop/idle_inhibit_v1.c b/sway/desktop/idle_inhibit_v1.c @@ -120,10 +120,13 @@ bool sway_idle_inhibit_v1_is_active(struct sway_idle_inhibitor_v1 *inhibitor) { switch (inhibitor->mode) { case INHIBIT_IDLE_APPLICATION:; struct wlr_surface *wlr_surface = inhibitor->wlr_inhibitor->surface; - if (wlr_layer_surface_v1_try_from_wlr_surface(wlr_surface)) { + struct wlr_layer_surface_v1 *layer_surface = + wlr_layer_surface_v1_try_from_wlr_surface(wlr_surface); + if (layer_surface) { // Layer surfaces can be occluded but are always on screen after // they have been mapped. - return wlr_surface->mapped; + return layer_surface->output && layer_surface->output->enabled && + wlr_surface->mapped; } // If there is no view associated with the inhibitor, assume invisible