diff options
author | Guido Günther <agx@sigxcpu.org> | 2019-03-24 13:35:49 +0100 |
---|---|---|
committer | Drew DeVault <sir@cmpwn.com> | 2019-03-24 09:19:36 -0600 |
commit | b4f821ca31621d292d506a342c0905acaecbf756 (patch) | |
tree | 325b6ac4546444790eb3312c78050bb8c7eee6d0 /rootston/output.c | |
parent | 4281c8c5667508708a929b92ebc33ab810f3f055 (diff) |
rootston: Also iterate layer shell popups
Broken by 62fd03a7beb18da6c4a5929e38739cf2199dfa79
Closes: #1631
Diffstat (limited to 'rootston/output.c')
-rw-r--r-- | rootston/output.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/rootston/output.c b/rootston/output.c index bc2f4d6c..3edd07b0 100644 --- a/rootston/output.c +++ b/rootston/output.c @@ -164,6 +164,23 @@ void output_layer_for_each_surface(struct roots_output *output, output_surface_for_each_surface(output, wlr_layer_surface_v1->surface, layer_surface->geo.x, layer_surface->geo.y, iterator, user_data); + + struct wlr_xdg_popup *state; + wl_list_for_each(state, &wlr_layer_surface_v1->popups, link) { + struct wlr_xdg_surface *popup = state->base; + if (!popup->configured) { + continue; + } + + double popup_sx, popup_sy; + popup_sx = layer_surface->geo.x; + popup_sx += popup->popup->geometry.x - popup->geometry.x; + popup_sy = layer_surface->geo.y; + popup_sy += popup->popup->geometry.y - popup->geometry.y; + + output_surface_for_each_surface(output, popup->surface, + popup_sx, popup_sy, iterator, user_data); + } } } |