diff --git a/dwl.c b/dwl.c index a3b33aa..bc74c96 100644 --- a/dwl.c +++ b/dwl.c @@ -140,6 +140,7 @@ typedef struct { typedef struct { /* Must be first */ unsigned int type; /* LayerShell */ + int mapped; struct wlr_scene_node *scene; struct wl_list link; struct wlr_layer_surface_v1 *layer_surface; @@ -758,6 +759,12 @@ commitlayersurfacenotify(struct wl_listener *listener, void *data) if (!wlr_output || !(m = wlr_output->data)) return; + if (wlr_layer_surface->current.committed == 0 + && layersurface->mapped == wlr_layer_surface->mapped) + return; + + layersurface->mapped = wlr_layer_surface->mapped; + if (layers[wlr_layer_surface->current.layer] != layersurface->scene) { wl_list_remove(&layersurface->link); wl_list_insert(&m->layers[wlr_layer_surface->current.layer],