xwayland: handle set_override_redirect events

This is needed to allow X11 applications to create surfaces as
non-override_redirect and then change them to override_redirect later

Without this gitk-menus and rofi are treated as xwayland-views with
associated server-side-decoration and forced positioning.

Backport of 81f216b6a2
This commit is contained in:
Johan Malm 2022-05-03 19:44:31 +01:00 committed by Johan Malm
parent 9b593e4715
commit 03c6f23d6d
3 changed files with 39 additions and 4 deletions

View file

@ -310,6 +310,7 @@ struct view {
struct wl_listener set_title;
struct wl_listener set_app_id; /* class on xwayland */
struct wl_listener set_decorations; /* xwayland only */
struct wl_listener override_redirect; /* xwayland only */
struct wl_listener new_popup; /* xdg-shell only */
struct wl_listener new_subsurface; /* xdg-shell only */
};
@ -372,8 +373,9 @@ void xdg_surface_new(struct wl_listener *listener, void *data);
#if HAVE_XWAYLAND
void xwayland_surface_new(struct wl_listener *listener, void *data);
void xwayland_unmanaged_create(struct server *server,
struct xwayland_unmanaged *xwayland_unmanaged_create(struct server *server,
struct wlr_xwayland_surface *xsurface);
void unmanaged_handle_map(struct wl_listener *listener, void *data);
#endif
void view_child_init(struct view_child *child, struct view *view,