static void _eventd_nd_wl_pointer_release(EventdNdWlSeat *self) { if ( self->pointer == NULL ) return; if ( wl_pointer_get_version(self->pointer) >= WL_POINTER_RELEASE_SINCE_VERSION ) wl_pointer_release(self->pointer); else wl_pointer_destroy(self->pointer); self->pointer = NULL; }
void wlf_DestroyInput(wlfContext* wlfc, wlfInput* input) { if (input == NULL) return; if (wlfc->input == input) wlfc->input = NULL; if (input->pointer) wl_pointer_release(input->pointer); if (input->keyboard) wl_keyboard_release(input->keyboard); free(input); }
static void ss_seat_destroy(struct ss_seat *seat) { if (seat->parent.pointer) wl_pointer_release(seat->parent.pointer); if (seat->parent.keyboard) wl_keyboard_release(seat->parent.keyboard); wl_seat_destroy(seat->parent.seat); wl_list_remove(&seat->link); weston_seat_release(&seat->base); free(seat); }