diff options
Diffstat (limited to 'sway/desktop/output.c')
-rw-r--r-- | sway/desktop/output.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/sway/desktop/output.c b/sway/desktop/output.c index ec204c6f..21c8513f 100644 --- a/sway/desktop/output.c +++ b/sway/desktop/output.c | |||
@@ -218,6 +218,19 @@ static void output_frame_notify(struct wl_listener *listener, void *data) { | |||
218 | swayc_descendants_of_type( | 218 | swayc_descendants_of_type( |
219 | &root_container, C_VIEW, output_frame_view, soutput); | 219 | &root_container, C_VIEW, output_frame_view, soutput); |
220 | 220 | ||
221 | // render unmanaged views on top | ||
222 | struct sway_view *view; | ||
223 | wl_list_for_each(view, &root_container.sway_root->unmanaged_views, | ||
224 | unmanaged_view_link) { | ||
225 | if (view->type == SWAY_XWAYLAND_VIEW) { | ||
226 | // the only kind of unamanged view right now is xwayland override redirect | ||
227 | int view_x = view->wlr_xwayland_surface->x; | ||
228 | int view_y = view->wlr_xwayland_surface->y; | ||
229 | render_surface(view->surface, wlr_output, &soutput->last_frame, | ||
230 | view_x, view_y, 0); | ||
231 | } | ||
232 | } | ||
233 | |||
221 | wlr_renderer_end(server->renderer); | 234 | wlr_renderer_end(server->renderer); |
222 | wlr_output_swap_buffers(wlr_output); | 235 | wlr_output_swap_buffers(wlr_output); |
223 | 236 | ||