diff --git a/dwl.c b/dwl.c index f6b390f..cafafe1 100644 --- a/dwl.c +++ b/dwl.c @@ -876,7 +876,10 @@ void createnotify(struct wl_listener *listener, void *data) { /* This event is raised when wlr_xdg_shell receives a new xdg surface from a - * client, either a toplevel (application window) or popup. */ + * client, either a toplevel (application window) or popup. + * or when wlr_layer_shell receives a new popup from a layer, so if you want + * to do something tricky you should check if the parent is wlr_xdg_shell or + * wlr_layer_shell */ struct wlr_xdg_surface *xdg_surface = data; Client *c; @@ -929,8 +932,8 @@ createlayersurface(struct wl_listener *listener, void *data) wlr_layer_surface->data = layersurface; m = wlr_layer_surface->output->data; - layersurface->scene = wlr_scene_subsurface_tree_create( - layers[wlr_layer_surface->pending.layer], + layersurface->scene = wlr_layer_surface->surface->data = + wlr_scene_subsurface_tree_create(layers[wlr_layer_surface->pending.layer], wlr_layer_surface->surface); layersurface->scene->data = layersurface;