+ struct surface *s = this->surfaces[id].get();
+ 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);
+ c->layers[100]->add_surface(c->surfaces[id].get());
+ c->layers[100]->set_visibility(1);
+ });
+}
+
+void controller::surface_orientation(uint32_t id, int32_t orientation) {