From a9547af35833ba06b7446bcba800d7d6a764508c Mon Sep 17 00:00:00 2001 From: nyorain Date: Thu, 22 Jun 2017 18:21:28 +0200 Subject: Fix pointer example for wayland backend --- example/shared.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'example/shared.c') diff --git a/example/shared.c b/example/shared.c index c4ec4ffe..fbb6c559 100644 --- a/example/shared.c +++ b/example/shared.c @@ -105,6 +105,15 @@ static void pointer_motion_notify(struct wl_listener *listener, void *data) { } } +static void pointer_motion_absolute_notify(struct wl_listener *listener, void *data) { + struct wlr_event_pointer_motion_absolute *event = data; + struct pointer_state *pstate = wl_container_of(listener, pstate, motion_absolute); + if (pstate->compositor->pointer_motion_absolute_cb) { + pstate->compositor->pointer_motion_absolute_cb(pstate, + event->x_mm, event->y_mm); + } +} + static void pointer_button_notify(struct wl_listener *listener, void *data) { struct wlr_event_pointer_button *event = data; struct pointer_state *pstate = wl_container_of(listener, pstate, button); @@ -132,9 +141,11 @@ static void pointer_add(struct wlr_input_device *device, struct compositor_state wl_list_init(&pstate->button.link); wl_list_init(&pstate->axis.link); pstate->motion.notify = pointer_motion_notify; + pstate->motion_absolute.notify = pointer_motion_absolute_notify; pstate->button.notify = pointer_button_notify; pstate->axis.notify = pointer_axis_notify; wl_signal_add(&device->pointer->events.motion, &pstate->motion); + wl_signal_add(&device->pointer->events.motion_absolute, &pstate->motion_absolute); wl_signal_add(&device->pointer->events.button, &pstate->button); wl_signal_add(&device->pointer->events.axis, &pstate->axis); wl_list_insert(&state->pointers, &pstate->link); @@ -308,7 +319,7 @@ static void pointer_remove(struct wlr_input_device *device, struct compositor_st } wl_list_remove(&pstate->link); wl_list_remove(&pstate->motion.link); - //wl_list_remove(&pstate->motion_absolute.link); + wl_list_remove(&pstate->motion_absolute.link); wl_list_remove(&pstate->button.link); wl_list_remove(&pstate->axis.link); } -- cgit v1.2.3