From e6bcf95e2e69a0b9598d6f3e201b46ad817889ca Mon Sep 17 00:00:00 2001 From: "Devin J. Pohly" Date: Thu, 23 Apr 2020 21:29:28 -0500 Subject: [PATCH] use the focus stack to determine stacking order Suddenly we have autoraise! --- dwl.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/dwl.c b/dwl.c index d07ed6a..d72d13e 100644 --- a/dwl.c +++ b/dwl.c @@ -822,9 +822,9 @@ rendermon(struct wl_listener *listener, void *data) wlr_renderer_clear(drw, rootcolor); /* Each subsequent window we render is rendered on top of the last. Because - * our client list is ordered front-to-back, we iterate over it backwards. */ + * our focus stack is ordered front-to-back, we iterate over it backwards. */ Client *c; - wl_list_for_each_reverse(c, &clients, link) { + wl_list_for_each_reverse(c, &fstack, flink) { /* Only render clients which are on this monitor. */ /* XXX consider checking wlr_output_layout_intersects, in case a * window can be seen on multiple outputs */ @@ -1241,9 +1241,9 @@ xytoclient(double x, double y, struct wlr_surface **surface, double *sx, double *sy) { /* This iterates over all of our surfaces and attempts to find one under the - * cursor. This relies on clients being ordered from top-to-bottom. */ + * cursor. This relies on fstack being ordered from top-to-bottom. */ Client *c; - wl_list_for_each(c, &clients, link) { + wl_list_for_each(c, &fstack, flink) { /* Skip clients that aren't visible */ if (!VISIBLEON(c, c->mon)) continue;