- : wayland_proxy(ivi_controller_layer_create(c->proxy, i, w, h)),
- controller_child(c, i),
- dst_rect{},
- src_rect{},
- size{},
- orientation{},
- visibility{},
- opacity{} {
- this->parent->add_proxy_to_id_mapping(this->proxy, i);
- ivi_controller_layer_add_listener(this->proxy, &layer_listener, this);
-}
-
-layer::~layer() {
- logdebug("%s layer %i @ %p", __func__, this->id, this->proxy);
- this->parent->remove_proxy_to_id_mapping(this->proxy);
- ivi_controller_layer_destroy(this->proxy, 1);
- this->proxy = nullptr;
+ : wayland_proxy(ivi_controller_layer_create(c->proxy.get(), i, w, h),
+ [c, i](ivi_controller_layer *l) {
+ logdebug("~layer layer %i @ %p", i, l);
+ c->remove_proxy_to_id_mapping(l);
+ ivi_controller_layer_destroy(l, 1);
+ }),
+ controller_child(c, i) {
+ this->parent->add_proxy_to_id_mapping(this->proxy.get(), i);
+ ivi_controller_layer_add_listener(this->proxy.get(), &layer_listener, this);