diff options
author | Carlos Garnacho <carlosg@gnome.org> | 2015-02-04 16:59:22 +0100 |
---|---|---|
committer | Carlos Garnacho <carlosg@gnome.org> | 2016-04-05 18:56:35 +0200 |
commit | 46128a5a2cabca22ddeb7135e00a714ea0d333bd (patch) | |
tree | 2dcc9cd73a15a9752d2db7a6ad481e0f43437ec3 | |
parent | 08aaea3d9c9c9e2239023feae9cd6d25c268a26d (diff) | |
download | clutter-46128a5a2cabca22ddeb7135e00a714ea0d333bd.tar.gz |
event: Add ClutterInputDeviceTool information to clutter events
These can be used to determine the tool that's being in use for a given event
-rw-r--r-- | clutter/clutter-event.c | 51 | ||||
-rw-r--r-- | clutter/clutter-event.h | 7 | ||||
-rw-r--r-- | doc/reference/clutter-sections.txt | 2 |
3 files changed, 60 insertions, 0 deletions
diff --git a/clutter/clutter-event.c b/clutter/clutter-event.c index 2d331f82c..28bc4b931 100644 --- a/clutter/clutter-event.c +++ b/clutter/clutter-event.c @@ -54,6 +54,8 @@ typedef struct _ClutterEventPrivate { gdouble delta_x; gdouble delta_y; + ClutterInputDeviceTool *tool; + gpointer platform_data; ClutterModifierType button_state; @@ -1207,6 +1209,54 @@ clutter_event_get_device (const ClutterEvent *event) } /** + * clutter_event_set_device_tool: + * @event: a #ClutterEvent + * @tool: (nullable): a #ClutterInputDeviceTool + * + * Sets the tool in use for this event + * + * Since: 1.28 + **/ +void +clutter_event_set_device_tool (ClutterEvent *event, + ClutterInputDeviceTool *tool) +{ + g_return_if_fail (event != NULL); + + if (is_event_allocated (event)) + { + ClutterEventPrivate *real_event = (ClutterEventPrivate *) event; + + real_event->tool = tool; + } +} + +/** + * clutter_event_get_device_tool: + * @event: a #ClutterEvent + * + * Returns the device tool that originated this event + * + * Returns: (transfer none): The tool of this event + * + * Since: 1.28 + **/ +ClutterInputDeviceTool * +clutter_event_get_device_tool (const ClutterEvent *event) +{ + g_return_val_if_fail (event != NULL, NULL); + + if (is_event_allocated (event)) + { + ClutterEventPrivate *real_event = (ClutterEventPrivate *) event; + + return real_event->tool; + } + + return NULL; +} + +/** * clutter_event_new: * @type: The type of event. * @@ -1269,6 +1319,7 @@ clutter_event_copy (const ClutterEvent *event) new_real_event->button_state = real_event->button_state; new_real_event->latched_state = real_event->latched_state; new_real_event->locked_state = real_event->locked_state; + new_real_event->tool = real_event->tool; } device = clutter_event_get_device (event); diff --git a/clutter/clutter-event.h b/clutter/clutter-event.h index b04d32291..a234a6a64 100644 --- a/clutter/clutter-event.h +++ b/clutter/clutter-event.h @@ -575,6 +575,13 @@ void clutter_event_set_source_device (ClutterEvent CLUTTER_AVAILABLE_IN_1_6 ClutterInputDevice * clutter_event_get_source_device (const ClutterEvent *event); + +CLUTTER_AVAILABLE_IN_1_28 +void clutter_event_set_device_tool (ClutterEvent *event, + ClutterInputDeviceTool *tool); +CLUTTER_AVAILABLE_IN_1_28 +ClutterInputDeviceTool *clutter_event_get_device_tool (const ClutterEvent *event); + CLUTTER_AVAILABLE_IN_1_8 void clutter_event_set_source (ClutterEvent *event, ClutterActor *actor); diff --git a/doc/reference/clutter-sections.txt b/doc/reference/clutter-sections.txt index b6596b2f0..9edc66c23 100644 --- a/doc/reference/clutter-sections.txt +++ b/doc/reference/clutter-sections.txt @@ -1144,6 +1144,8 @@ clutter_event_get_gesture_phase clutter_event_get_gesture_motion_delta clutter_event_get_scroll_source clutter_event_get_scroll_finish_flags +clutter_event_set_device_tool +clutter_event_get_device_tool <SUBSECTION> clutter_event_get |