xwayland: handle unmanaged override-redirect requests

Fixes: issue #874
This commit is contained in:
Johan Malm 2023-04-17 17:05:13 +01:00 committed by Johan Malm
parent 9d08a452a3
commit 26e6828e67

View file

@ -133,7 +133,26 @@ unmanaged_handle_destroy(struct wl_listener *listener, void *data)
static void
unmanaged_handle_override_redirect(struct wl_listener *listener, void *data)
{
wlr_log(WLR_DEBUG, "override_redirect not handled\n");
wlr_log(WLR_DEBUG, "handle unmanaged override_redirect");
struct xwayland_unmanaged *unmanaged =
wl_container_of(listener, unmanaged, override_redirect);
struct wlr_xwayland_surface *xsurface = unmanaged->xwayland_surface;
struct server *server = unmanaged->server;
bool mapped = xsurface->mapped;
if (mapped) {
unmanaged_handle_unmap(&unmanaged->unmap, NULL);
}
unmanaged_handle_destroy(&unmanaged->destroy, NULL);
xsurface->data = NULL;
struct xwayland_view *xwayland_view = xwayland_view_create(server, xsurface);
if (mapped) {
struct view *view = &xwayland_view->base;
if (view->impl->map) {
view->impl->map(view);
}
}
}
static void