improve client_from_wlr_surface()
parent
4dfa45659a
commit
a5a0674f6a
18
client.h
18
client.h
|
@ -232,10 +232,22 @@ client_min_size(Client *c, int *width, int *height)
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline Client *
|
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;
|
struct wlr_xdg_surface *surface;
|
||||||
return n ? n->data : NULL;
|
|
||||||
|
#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 *
|
static inline Client *
|
||||||
|
|
Loading…
Reference in New Issue