Signed-off-by: Stephen Chandler Paul <[email protected]>
---
 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

_______________________________________________
wayland-devel mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to