ZZ2YJI2UQWN6BEPXBL64I7KDXHB4L6WDPXVQW3MN3IFE6LHVX4DAC 7RLLU52RCOT2MQY4CPZTCDIA3FXETNPAISE5F2I7CI7TZW2SZVHAC DVIBBDIRHCREHHOHZNQ2L3JJTW6GRSUGBHDJD2OKUBHWIBJ5WJUQC DEWMVR6ZOXJDMECRB47RCED2QPVZWYWHLBB4KHYKXCPXKSLT7NWQC 7HPLEFGATGAYG3O7EEGZ4UL4UOFXIJUQAKF377ZJXL3L5LQV3VIAC 7B74AT3BXYB7PVW4F6SGQNPMHOU5TEV5TZ54CG6VSQI46XSEKWXQC MJZ6RCUUOK7R2RMXPXMLRWBAEM6234D2IS7RGPHAE5UN2S64GLGAC }voidcreatepointerconstraint(struct wl_listener *listener, void *data){PointerConstraint *pointer_constraint = ecalloc(1, sizeof(*pointer_constraint));pointer_constraint->constraint = data;LISTEN(&pointer_constraint->constraint->events.destroy,&pointer_constraint->destroy, destroypointerconstraint);
}voidcreatepointerconstraint(struct wl_listener *listener, void *data){PointerConstraint *pointer_constraint = ecalloc(1, sizeof(*pointer_constraint));pointer_constraint->constraint = data;LISTEN(&pointer_constraint->constraint->events.destroy,&pointer_constraint->destroy, destroypointerconstraint);