xwayland: Keep unmanaged surfaces stacked on top

This commit is contained in:
John Lindgren 2022-09-01 14:33:42 -04:00 committed by Consolatis
parent 9c271d792d
commit f7b1bc1de8
2 changed files with 9 additions and 0 deletions

View file

@ -32,6 +32,8 @@ unmanaged_handle_map(struct wl_listener *listener, void *data)
wl_container_of(listener, unmanaged, map); wl_container_of(listener, unmanaged, map);
struct wlr_xwayland_surface *xsurface = unmanaged->xwayland_surface; struct wlr_xwayland_surface *xsurface = unmanaged->xwayland_surface;
/* Stack new surface on top */
wlr_xwayland_surface_restack(xsurface, NULL, XCB_STACK_MODE_ABOVE);
wl_list_insert(unmanaged->server->unmanaged_surfaces.prev, wl_list_insert(unmanaged->server->unmanaged_surfaces.prev,
&unmanaged->link); &unmanaged->link);

View file

@ -386,6 +386,13 @@ set_activated(struct view *view, bool activated)
wlr_xwayland_surface_activate(surface, activated); wlr_xwayland_surface_activate(surface, activated);
if (activated) { if (activated) {
wlr_xwayland_surface_restack(surface, NULL, XCB_STACK_MODE_ABOVE); wlr_xwayland_surface_restack(surface, NULL, XCB_STACK_MODE_ABOVE);
/* Restack unmanaged surfaces on top */
struct xwayland_unmanaged *u;
struct wl_list *list = &view->server->unmanaged_surfaces;
wl_list_for_each (u, list, link) {
wlr_xwayland_surface_restack(u->xwayland_surface, NULL,
XCB_STACK_MODE_ABOVE);
}
} }
} }