diff --git a/include/wlr/types/wlr_scene.h b/include/wlr/types/wlr_scene.h index 35a0d69ef..acd28771c 100644 --- a/include/wlr/types/wlr_scene.h +++ b/include/wlr/types/wlr_scene.h @@ -250,6 +250,7 @@ struct wlr_scene_timer { /** A layer shell scene helper */ struct wlr_scene_layer_surface_v1 { struct wlr_scene_tree *tree; + struct wlr_scene_subsurface_tree *surface_tree; struct wlr_layer_surface_v1 *layer_surface; // private state diff --git a/types/scene/layer_shell_v1.c b/types/scene/layer_shell_v1.c index bf34256eb..fbfcd357b 100644 --- a/types/scene/layer_shell_v1.c +++ b/types/scene/layer_shell_v1.c @@ -142,9 +142,9 @@ struct wlr_scene_layer_surface_v1 *wlr_scene_layer_surface_v1_create( return NULL; } - struct wlr_scene_subsurface_tree *surface_tree = wlr_scene_subsurface_tree_create( + scene_layer_surface->surface_tree = wlr_scene_subsurface_tree_create( scene_layer_surface->tree, layer_surface->surface); - if (surface_tree == NULL) { + if (scene_layer_surface->surface_tree == NULL) { wlr_scene_node_destroy(&scene_layer_surface->tree->node); free(scene_layer_surface); return NULL;