+ struct surface *s = this->surfaces[id].get();
+ bool center = s->size.w != width && s->size.h != height;
+ s->size = size{uint32_t(width), uint32_t(height)};
+ if (center)
+ add_task([id, width, height](struct controller *c) {
+ auto const s = c->surfaces.find(id);
+ if (s != c->surfaces.end())
+ s->second->set_destination_rectangle(
+ 800 / 2 - width / 2, 600 / 2 - height / 2, width, height);
+ });