wlroots-hyprland/types/wlr_pointer.c
emersion 5de26ad8ed
pointer: add a frame event
Frame events group logically connected pointer events. It makes sense to make
the backend responsible for sending frame events, since once the events are
split (ie. once the frame events are stripped) it's not easy to figure out
which events belongs to which frame again.

This is also how Weston handles frame events.

Fixes https://github.com/swaywm/wlroots/issues/1468
2019-01-26 11:04:05 +01:00

26 lines
679 B
C

#include <stdlib.h>
#include <string.h>
#include <wayland-server.h>
#include <wlr/interfaces/wlr_pointer.h>
#include <wlr/types/wlr_pointer.h>
void wlr_pointer_init(struct wlr_pointer *pointer,
const struct wlr_pointer_impl *impl) {
pointer->impl = impl;
wl_signal_init(&pointer->events.motion);
wl_signal_init(&pointer->events.motion_absolute);
wl_signal_init(&pointer->events.button);
wl_signal_init(&pointer->events.axis);
wl_signal_init(&pointer->events.frame);
}
void wlr_pointer_destroy(struct wlr_pointer *pointer) {
if (!pointer) {
return;
}
if (pointer->impl && pointer->impl->destroy) {
pointer->impl->destroy(pointer);
} else {
free(pointer);
}
}