[clutter/wip/evdev-tablet-support: 35/38] main: Allow updating device axes from the current tool



commit d574a99dcc9a946608c03b8cbbe4c5029df840c6
Author: Carlos Garnacho <carlosg gnome org>
Date:   Wed Feb 4 17:17:23 2015 +0100

    main: Allow updating device axes from the current tool
    
    This way devices are ensured the proper axis status at the time
    of processing the events.

 clutter/clutter-device-manager-private.h |    5 +++++
 clutter/clutter-input-device.c           |   14 ++++++++++++++
 clutter/clutter-main.c                   |    3 +++
 3 files changed, 22 insertions(+), 0 deletions(-)
---
diff --git a/clutter/clutter-device-manager-private.h b/clutter/clutter-device-manager-private.h
index 3b33135..6af3295 100644
--- a/clutter/clutter-device-manager-private.h
+++ b/clutter/clutter-device-manager-private.h
@@ -145,6 +145,8 @@ struct _ClutterInputDeviceClass
   gboolean (* keycode_to_evdev) (ClutterInputDevice *device,
                                  guint               hardware_keycode,
                                  guint              *evdev_keycode);
+  void (* update_from_tool) (ClutterInputDevice     *device,
+                             ClutterInputDeviceTool *tool);
 };
 
 /* Platform-dependent interface */
@@ -243,6 +245,9 @@ ClutterInputDeviceTool * clutter_input_device_lookup_tool       (ClutterInputDev
 void            clutter_input_device_add_tool                   (ClutterInputDevice     *device,
                                                                  ClutterInputDeviceTool *tool);
 
+void            clutter_input_device_update_from_tool           (ClutterInputDevice     *device,
+                                                                 ClutterInputDeviceTool *tool);
+
 G_END_DECLS
 
 #endif /* __CLUTTER_DEVICE_MANAGER_PRIVATE_H__ */
diff --git a/clutter/clutter-input-device.c b/clutter/clutter-input-device.c
index add413d..216644a 100644
--- a/clutter/clutter-input-device.c
+++ b/clutter/clutter-input-device.c
@@ -2052,3 +2052,17 @@ clutter_input_device_lookup_tool (ClutterInputDevice         *device,
 
   return NULL;
 }
+
+void
+clutter_input_device_update_from_tool (ClutterInputDevice     *device,
+                                       ClutterInputDeviceTool *tool)
+{
+  ClutterInputDeviceClass *device_class;
+
+  g_return_if_fail (CLUTTER_IS_INPUT_DEVICE (device));
+
+  device_class = CLUTTER_INPUT_DEVICE_GET_CLASS (device);
+
+  if (device_class->update_from_tool)
+    device_class->update_from_tool (device, tool);
+}
diff --git a/clutter/clutter-main.c b/clutter/clutter-main.c
index 78327e6..99cfdc5 100644
--- a/clutter/clutter-main.c
+++ b/clutter/clutter-main.c
@@ -2517,6 +2517,9 @@ _clutter_process_event_details (ClutterActor        *stage,
 
       case CLUTTER_PROXIMITY_IN:
       case CLUTTER_PROXIMITY_OUT:
+        clutter_input_device_update_from_tool (clutter_event_get_source_device (event),
+                                               clutter_event_get_device_tool (event));
+
         if (_clutter_event_process_filters (event))
           break;
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]