|
|
@ -75,6 +75,14 @@ static void relative_pointer_handle_seat_destroy(struct wl_listener *listener,
|
|
|
|
relative_pointer_destroy(relative_pointer);
|
|
|
|
relative_pointer_destroy(relative_pointer);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static void relative_pointer_handle_pointer_destroy(struct wl_listener *listener,
|
|
|
|
|
|
|
|
void *data) {
|
|
|
|
|
|
|
|
struct wlr_relative_pointer_v1 *relative_pointer =
|
|
|
|
|
|
|
|
wl_container_of(listener, relative_pointer, pointer_destroy);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
relative_pointer_destroy(relative_pointer);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* relative_pointer_manager handler functions
|
|
|
|
* relative_pointer_manager handler functions
|
|
|
|
*/
|
|
|
|
*/
|
|
|
@ -129,10 +137,12 @@ static void relative_pointer_manager_v1_handle_get_relative_pointer(struct wl_cl
|
|
|
|
|
|
|
|
|
|
|
|
wl_signal_add(&relative_pointer->seat->events.destroy,
|
|
|
|
wl_signal_add(&relative_pointer->seat->events.destroy,
|
|
|
|
&relative_pointer->seat_destroy);
|
|
|
|
&relative_pointer->seat_destroy);
|
|
|
|
wl_resource_add_destroy_listener(relative_pointer->pointer,
|
|
|
|
|
|
|
|
&relative_pointer->seat_destroy);
|
|
|
|
|
|
|
|
relative_pointer->seat_destroy.notify = relative_pointer_handle_seat_destroy;
|
|
|
|
relative_pointer->seat_destroy.notify = relative_pointer_handle_seat_destroy;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
wl_resource_add_destroy_listener(relative_pointer->pointer,
|
|
|
|
|
|
|
|
&relative_pointer->pointer_destroy);
|
|
|
|
|
|
|
|
relative_pointer->pointer_destroy.notify = relative_pointer_handle_pointer_destroy;
|
|
|
|
|
|
|
|
|
|
|
|
wlr_signal_emit_safe(&relative_pointer_manager->events.new_relative_pointer,
|
|
|
|
wlr_signal_emit_safe(&relative_pointer_manager->events.new_relative_pointer,
|
|
|
|
relative_pointer);
|
|
|
|
relative_pointer);
|
|
|
|
|
|
|
|
|
|
|
|