improve client_from_wlr_surface()

This commit is contained in:
Leonardo Hernández Hernández 2022-06-06 22:50:50 -05:00
parent 4dfa45659a
commit a5a0674f6a
No known key found for this signature in database
GPG Key ID: E538897EE11B9624
1 changed files with 15 additions and 3 deletions

View File

@ -232,10 +232,22 @@ client_min_size(Client *c, int *width, int *height)
}
static inline Client *
client_from_wlr_surface(struct wlr_surface *surface)
client_from_wlr_surface(struct wlr_surface *s)
{
struct wlr_scene_node *n = surface->data;
return n ? n->data : NULL;
struct wlr_xdg_surface *surface;
#ifdef XWAYLAND
struct wlr_xwayland_surface *xsurface;
if (s->role_data && wlr_surface_is_xwayland_surface(s)
&& (xsurface = wlr_xwayland_surface_from_wlr_surface(s)))
return xsurface->data;
#endif
if (s->role_data && wlr_surface_is_xdg_surface(s)
&& (surface = wlr_xdg_surface_from_wlr_surface(s))
&& surface->role == WLR_XDG_SURFACE_ROLE_TOPLEVEL)
return surface->data;
return NULL;
}
static inline Client *