forked from mirror/dwl
improve client_from_wlr_surface()
This commit is contained in:
parent
4dfa45659a
commit
a5a0674f6a
1 changed files with 15 additions and 3 deletions
18
client.h
18
client.h
|
@ -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 *
|
||||
|
|
Loading…
Reference in a new issue