summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--client.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/client.h b/client.h
index dc4a6c4..c091b81 100644
--- a/client.h
+++ b/client.h
@@ -30,6 +30,7 @@ static inline Client *
client_from_wlr_surface(struct wlr_surface *s)
{
struct wlr_xdg_surface *surface;
+ struct wlr_surface *parent;
#ifdef XWAYLAND
struct wlr_xwayland_surface *xsurface;
@@ -42,6 +43,8 @@ client_from_wlr_surface(struct wlr_surface *s)
&& surface->role == WLR_XDG_SURFACE_ROLE_TOPLEVEL)
return surface->data;
+ if (s && wlr_surface_is_subsurface(s))
+ return client_from_wlr_surface(wlr_surface_get_root_surface(s));
return NULL;
}