diff options
Diffstat (limited to 'dwl.c')
-rw-r--r-- | dwl.c | 10 |
1 files changed, 6 insertions, 4 deletions
@@ -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; |