diff options
-rw-r--r-- | tinywl/tinywl.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/tinywl/tinywl.c b/tinywl/tinywl.c index d4f4e7f..f6e1254 100644 --- a/tinywl/tinywl.c +++ b/tinywl/tinywl.c @@ -613,8 +613,14 @@ static void output_configure_scene(struct wlr_scene_node *node, struct wlr_scene_surface * scene_surface = wlr_scene_surface_from_buffer(buffer); - struct wlr_xdg_surface *xdg_surface = - wlr_xdg_surface_from_wlr_surface(scene_surface->surface); + if (!scene_surface) { + return; + } + + struct wlr_xdg_surface *xdg_surface = NULL; + if (wlr_surface_is_xdg_surface(scene_surface->surface)) { + xdg_surface = wlr_xdg_surface_from_wlr_surface(scene_surface->surface); + } if (xdg_surface && xdg_surface->role == WLR_XDG_SURFACE_ROLE_TOPLEVEL) { |