wayland: remove surface immediately on surface_destroyed event
[staging/windowmanager.git] / src / wayland.cpp
index d7a0e22..625dbb0 100644 (file)
@@ -521,8 +521,9 @@ void controller::surface_configuration(uint32_t id, int32_t width,
          c->surfaces[id]->set_destination_rectangle(0, 0, c->output_size.w,
                                                     c->output_size.h);
          c->surfaces[id]->set_visibility(1);
-         c->layers[100]->add_surface(c->surfaces[id].get());
-         c->layers[100]->set_visibility(1);
+         uint32_t lid = id == 0x16180 ? 1000 : 100;
+         c->layers[lid]->add_surface(c->surfaces[id].get());
+         c->layers[lid]->set_visibility(1);
       });
 }
 
@@ -550,6 +551,7 @@ void controller::surface_stats(uint32_t id, uint32_t redraw_count,
 
 void controller::surface_destroyed(uint32_t id) {
    logdebug("genivi::surface %s @ %p", __func__, this->proxy);
+   this->surfaces.erase(id);
 }
 
 void controller::surface_content(uint32_t id, int32_t content_state) {