diff --git a/dwl.c b/dwl.c index f32b163..5ec5493 100644 --- a/dwl.c +++ b/dwl.c @@ -855,10 +855,12 @@ renderclients(Monitor *m, struct timespec *now) * our stacking list is ordered front-to-back, we iterate over it backwards. */ Client *c; wl_list_for_each_reverse(c, &stack, slink) { - /* 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 */ - if (!VISIBLEON(c, m)) + /* Only render visible clients which show on this monitor */ + struct wlr_box cbox = { + .x = c->x, .y = c->y, .width = c->w, .height = c->h, + }; + if (!VISIBLEON(c, c->mon) || !wlr_output_layout_intersects( + output_layout, m->wlr_output, &cbox)) continue; double ox = c->x, oy = c->y;