aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLeonardo Hernández Hernández <leohdz172@protonmail.com>2022-09-10 22:11:06 -0500
committerLeonardo Hernández Hernández <leohdz172@protonmail.com>2022-09-10 22:11:06 -0500
commitf8f94c97f5d324c8876e88d0d82fd518eca25b1b (patch)
tree28a300446c85a9dd6483234144c218932296a59b
parent1bb9c4583a4e5b0975ed9b57e994f1d958f04c73 (diff)
fix idle inhibitor check
previously we tried to get a client from the surface and then compare it with the excluded surface, if we cannot get a client from the surface (e.g: a layer surface) it just ignored all the next idle inhibitors no matter what What I have should done is just checking if the excluded surface is equal to the current idle inhibitor's surface and continue in case it is.
-rw-r--r--dwl.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/dwl.c b/dwl.c
index 7c3855d..9420ae5 100644
--- a/dwl.c
+++ b/dwl.c
@@ -694,14 +694,14 @@ chvt(const Arg *arg)
void
checkidleinhibitor(struct wlr_surface *exclude)
{
- Client *c, *w;
int inhibited = 0;
struct wlr_idle_inhibitor_v1 *inhibitor;
wl_list_for_each(inhibitor, &idle_inhibit_mgr->inhibitors, link) {
- c = client_from_wlr_surface(inhibitor->surface);
- if (exclude && (!(w = client_from_wlr_surface(exclude)) || w == c))
+ Client *c;
+ if (exclude == inhibitor->surface)
continue;
- if (!c || VISIBLEON(c, c->mon)) {
+ if (!(c = client_from_wlr_surface(inhibitor->surface))
+ || VISIBLEON(c, c->mon)) {
inhibited = 1;
break;
}