summaryrefslogtreecommitdiff
path: root/sway/desktop/output.c
diff options
context:
space:
mode:
authorTony Crisci <[email protected]>2018-01-14 13:19:21 -0500
committerTony Crisci <[email protected]>2018-01-14 13:19:21 -0500
commit83ddd2d9dbee1b77993f5cc45427854e18aae6f1 (patch)
treef2ec5fbc8b47b66f85978aa7feb1a09e34aaf569 /sway/desktop/output.c
parent2ce1d8d6cd0ae1520ea191678e3c39d555c66b58 (diff)
render override redirect
Diffstat (limited to 'sway/desktop/output.c')
-rw-r--r--sway/desktop/output.c13
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) {
swayc_descendants_of_type(
&root_container, C_VIEW, output_frame_view, soutput);
+ // render unmanaged views on top
+ struct sway_view *view;
+ wl_list_for_each(view, &root_container.sway_root->unmanaged_views,
+ unmanaged_view_link) {
+ if (view->type == SWAY_XWAYLAND_VIEW) {
+ // the only kind of unamanged view right now is xwayland override redirect
+ int view_x = view->wlr_xwayland_surface->x;
+ int view_y = view->wlr_xwayland_surface->y;
+ render_surface(view->surface, wlr_output, &soutput->last_frame,
+ view_x, view_y, 0);
+ }
+ }
+
wlr_renderer_end(server->renderer);
wlr_output_swap_buffers(wlr_output);