fn process_seat_event(
    seat: Main<WlSeat>,
    event: Event,
    listeners: &RefCell<Vec<Weak<RefCell<dyn FnMut(Attached<WlSeat>, &SeatData, DispatchData<'_>) + 'static>>>>,
    ddata: DispatchData<'_>
)