[PATCH libinput v2 5/5] tablet: Include axes with all events
Peter Hutterer
peter.hutterer at who-t.net
Thu Jun 26 16:40:49 PDT 2014
On Thu, Jun 26, 2014 at 06:02:52PM -0400, Stephen Chandler Paul wrote:
> Signed-off-by: Stephen Chandler Paul <thatslyude at gmail.com>
Reviewed-by: Peter Hutterer <peter.hutterer at who-t.net>
with the &foo -> foo changes in the memcpy.
Cheers,
Peter
> ---
> src/evdev-tablet.c | 11 +++++++++--
> src/libinput-private.h | 7 +++++--
> src/libinput.c | 14 ++++++++++++--
> src/libinput.h | 3 ---
> 4 files changed, 26 insertions(+), 9 deletions(-)
>
> diff --git a/src/evdev-tablet.c b/src/evdev-tablet.c
> index 710e391..051c3b4 100644
> --- a/src/evdev-tablet.c
> +++ b/src/evdev-tablet.c
> @@ -315,6 +315,7 @@ tablet_notify_button_mask(struct tablet_dispatch *tablet,
> tablet_notify_button(base,
> time,
> tool,
> + tablet->axes,
> num_button + button_base - 1,
> state);
> }
> @@ -391,7 +392,10 @@ tablet_flush(struct tablet_dispatch *tablet,
> tablet->button_state.stylus_buttons = 0;
> tablet_set_status(tablet, TABLET_BUTTONS_RELEASED);
> } else if (tablet_has_status(tablet, TABLET_TOOL_ENTERING_PROXIMITY)) {
> - tablet_notify_proximity_in(&device->base, time, tool);
> + tablet_notify_proximity_in(&device->base,
> + time,
> + tool,
> + tablet->axes);
> tablet_unset_status(tablet, TABLET_TOOL_ENTERING_PROXIMITY);
> }
>
> @@ -420,7 +424,10 @@ tablet_flush(struct tablet_dispatch *tablet,
> }
>
> if (tablet_has_status(tablet, TABLET_TOOL_LEAVING_PROXIMITY)) {
> - tablet_notify_proximity_out(&device->base, time, tool);
> + tablet_notify_proximity_out(&device->base,
> + time,
> + tool,
> + tablet->axes);
> tablet_set_status(tablet, TABLET_TOOL_OUT_OF_PROXIMITY);
> tablet_unset_status(tablet, TABLET_TOOL_LEAVING_PROXIMITY);
> }
> diff --git a/src/libinput-private.h b/src/libinput-private.h
> index a396d78..dbdf5e6 100644
> --- a/src/libinput-private.h
> +++ b/src/libinput-private.h
> @@ -221,17 +221,20 @@ tablet_notify_axis(struct libinput_device *device,
> void
> tablet_notify_proximity_in(struct libinput_device *device,
> uint32_t time,
> - struct libinput_tool *tool);
> + struct libinput_tool *tool,
> + double *axes);
>
> void
> tablet_notify_proximity_out(struct libinput_device *device,
> uint32_t time,
> - struct libinput_tool *tool);
> + struct libinput_tool *tool,
> + double *axes);
>
> void
> tablet_notify_button(struct libinput_device *device,
> uint32_t time,
> struct libinput_tool *tool,
> + double *axes,
> int32_t button,
> enum libinput_button_state state);
> void
> diff --git a/src/libinput.c b/src/libinput.c
> index 1bd3d51..9a9aaa3 100644
> --- a/src/libinput.c
> +++ b/src/libinput.c
> @@ -1253,7 +1253,8 @@ tablet_notify_axis(struct libinput_device *device,
> void
> tablet_notify_proximity_in(struct libinput_device *device,
> uint32_t time,
> - struct libinput_tool *tool)
> + struct libinput_tool *tool,
> + double *axes)
> {
> struct libinput_event_tablet *proximity_in_event;
>
> @@ -1265,6 +1266,9 @@ tablet_notify_proximity_in(struct libinput_device *device,
> .time = time,
> .tool = tool,
> };
> + memcpy(&proximity_in_event->axes,
> + axes,
> + sizeof(proximity_in_event->axes));
>
> post_device_event(device,
> LIBINPUT_EVENT_TABLET_PROXIMITY_IN,
> @@ -1274,7 +1278,8 @@ tablet_notify_proximity_in(struct libinput_device *device,
> void
> tablet_notify_proximity_out(struct libinput_device *device,
> uint32_t time,
> - struct libinput_tool *tool)
> + struct libinput_tool *tool,
> + double *axes)
> {
> struct libinput_event_tablet *proximity_out_update_event;
>
> @@ -1286,6 +1291,9 @@ tablet_notify_proximity_out(struct libinput_device *device,
> .time = time,
> .tool = tool,
> };
> + memcpy(&proximity_out_update_event->axes,
> + axes,
> + sizeof(proximity_out_update_event->axes));
>
> post_device_event(device,
> LIBINPUT_EVENT_TABLET_PROXIMITY_OUT,
> @@ -1296,6 +1304,7 @@ void
> tablet_notify_button(struct libinput_device *device,
> uint32_t time,
> struct libinput_tool *tool,
> + double *axes,
> int32_t button,
> enum libinput_button_state state)
> {
> @@ -1317,6 +1326,7 @@ tablet_notify_button(struct libinput_device *device,
> .state = state,
> .seat_button_count = seat_button_count,
> };
> + memcpy(&button_event->axes, axes, sizeof(button_event->axes));
>
> post_device_event(device,
> LIBINPUT_EVENT_TABLET_BUTTON,
> diff --git a/src/libinput.h b/src/libinput.h
> index 7f8e081..7fd1dd2 100644
> --- a/src/libinput.h
> +++ b/src/libinput.h
> @@ -876,9 +876,6 @@ libinput_event_tablet_axis_has_changed(struct libinput_event_tablet *event,
> * that indicates the tilt vertical or horizontal tilt of the tool
> * respectively
> *
> - * For tablet events that are not of type @ref LIBINPUT_EVENT_TABLET_AXIS, this
> - * function returns 0.
> - *
> * @param event The libinput tablet event
> * @param axis The axis to retrieve the value of
> * @return The current value of the the axis
> --
> 1.8.5.5
>
More information about the wayland-devel
mailing list