diff options
author | Leonardo Hernández Hernández <leohdz172@protonmail.com> | 2022-09-10 22:11:06 -0500 |
---|---|---|
committer | Leonardo Hernández Hernández <leohdz172@protonmail.com> | 2022-09-10 22:11:06 -0500 |
commit | f8f94c97f5d324c8876e88d0d82fd518eca25b1b (patch) | |
tree | 28a300446c85a9dd6483234144c218932296a59b | |
parent | 1bb9c4583a4e5b0975ed9b57e994f1d958f04c73 (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.c | 8 |
1 files changed, 4 insertions, 4 deletions
@@ -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; } |