handle client_from_wlr_surface() receiving a subsurface

This commit is contained in:
Leonardo Hernández Hernández 2022-08-12 23:58:11 -05:00
parent 48396a1bf8
commit 28af37cd1f
No known key found for this signature in database
GPG key ID: E538897EE11B9624

View file

@ -30,6 +30,7 @@ static inline Client *
client_from_wlr_surface(struct wlr_surface *s) client_from_wlr_surface(struct wlr_surface *s)
{ {
struct wlr_xdg_surface *surface; struct wlr_xdg_surface *surface;
struct wlr_surface *parent;
#ifdef XWAYLAND #ifdef XWAYLAND
struct wlr_xwayland_surface *xsurface; struct wlr_xwayland_surface *xsurface;
@ -42,6 +43,8 @@ client_from_wlr_surface(struct wlr_surface *s)
&& surface->role == WLR_XDG_SURFACE_ROLE_TOPLEVEL) && surface->role == WLR_XDG_SURFACE_ROLE_TOPLEVEL)
return surface->data; return surface->data;
if (s && wlr_surface_is_subsurface(s))
return client_from_wlr_surface(wlr_surface_get_root_surface(s));
return NULL; return NULL;
} }