+ auto &s = this->surfaces[id];
+
+ bool center = int(s->size.w) != int(width) && int(s->size.h) != int(height);
+ s->size = size{uint32_t(width), uint32_t(height)};
+
+ if (center)
+ add_task("fullscreen surface", [id](struct controller *c) {
+ c->surfaces[id]->set_destination_rectangle(0, 0, c->output_size.w,
+ c->output_size.h);
+ c->surfaces[id]->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);
+ logdebug("Surface %u now fullscreen on layer %u", id, lid);
+ });