summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--clutter/clutter/clutter-backend-private.h6
-rw-r--r--clutter/clutter/clutter-backend.c33
-rw-r--r--clutter/clutter/clutter-device-manager-private.h22
-rw-r--r--clutter/clutter/clutter-device-manager.c9
-rw-r--r--clutter/clutter/clutter-device-manager.h10
-rw-r--r--clutter/clutter/evdev/clutter-device-manager-evdev.c19
-rw-r--r--clutter/clutter/x11/clutter-device-manager-xi2.c23
7 files changed, 31 insertions, 91 deletions
diff --git a/clutter/clutter/clutter-backend-private.h b/clutter/clutter/clutter-backend-private.h
index 37be746db..396020e06 100644
--- a/clutter/clutter/clutter-backend-private.h
+++ b/clutter/clutter/clutter-backend-private.h
@@ -91,12 +91,6 @@ struct _ClutterBackendClass
GError **error);
ClutterDeviceManager *(* get_device_manager) (ClutterBackend *backend);
- void (* copy_event_data) (ClutterBackend *backend,
- const ClutterEvent *src,
- ClutterEvent *dest);
- void (* free_event_data) (ClutterBackend *backend,
- ClutterEvent *event);
-
gboolean (* translate_event) (ClutterBackend *backend,
gpointer native,
ClutterEvent *event);
diff --git a/clutter/clutter/clutter-backend.c b/clutter/clutter/clutter-backend.c
index bc7c11977..aad3d38f7 100644
--- a/clutter/clutter/clutter-backend.c
+++ b/clutter/clutter/clutter-backend.c
@@ -819,37 +819,24 @@ _clutter_backend_copy_event_data (ClutterBackend *backend,
const ClutterEvent *src,
ClutterEvent *dest)
{
- ClutterEventExtenderInterface *iface;
- ClutterBackendClass *klass;
+ ClutterDeviceManagerClass *device_manager_class;
+ ClutterDeviceManager *device_manager;
- klass = CLUTTER_BACKEND_GET_CLASS (backend);
- if (CLUTTER_IS_EVENT_EXTENDER (backend->device_manager))
- {
- iface = CLUTTER_EVENT_EXTENDER_GET_IFACE (backend->device_manager);
- iface->copy_event_data (CLUTTER_EVENT_EXTENDER (backend->device_manager),
- src, dest);
- }
- else if (klass->copy_event_data != NULL)
- klass->copy_event_data (backend, src, dest);
+ device_manager = clutter_device_manager_get_default ();
+ device_manager_class = CLUTTER_DEVICE_MANAGER_GET_CLASS (device_manager);
+ device_manager_class->copy_event_data (device_manager, src, dest);
}
void
_clutter_backend_free_event_data (ClutterBackend *backend,
ClutterEvent *event)
{
- ClutterEventExtenderInterface *iface;
- ClutterBackendClass *klass;
+ ClutterDeviceManagerClass *device_manager_class;
+ ClutterDeviceManager *device_manager;
- klass = CLUTTER_BACKEND_GET_CLASS (backend);
-
- if (CLUTTER_IS_EVENT_EXTENDER (backend->device_manager))
- {
- iface = CLUTTER_EVENT_EXTENDER_GET_IFACE (backend->device_manager);
- iface->free_event_data (CLUTTER_EVENT_EXTENDER (backend->device_manager),
- event);
- }
- else if (klass->free_event_data != NULL)
- klass->free_event_data (backend, event);
+ device_manager = clutter_device_manager_get_default ();
+ device_manager_class = CLUTTER_DEVICE_MANAGER_GET_CLASS (device_manager);
+ device_manager_class->free_event_data (device_manager, event);
}
/**
diff --git a/clutter/clutter/clutter-device-manager-private.h b/clutter/clutter/clutter-device-manager-private.h
index 712dd404a..86355285a 100644
--- a/clutter/clutter/clutter-device-manager-private.h
+++ b/clutter/clutter/clutter-device-manager-private.h
@@ -193,28 +193,6 @@ struct _ClutterInputDeviceClass
ClutterEmitInputDeviceEvent emit_event_func);
};
-/* Platform-dependent interface */
-typedef struct _ClutterEventExtender ClutterEventExtender;
-typedef struct _ClutterEventExtenderInterface ClutterEventExtenderInterface;
-
-#define CLUTTER_TYPE_EVENT_EXTENDER (clutter_event_extender_get_type ())
-#define CLUTTER_EVENT_EXTENDER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), CLUTTER_TYPE_EVENT_EXTENDER, ClutterEventExtender))
-#define CLUTTER_IS_EVENT_EXTENDER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), CLUTTER_TYPE_EVENT_EXTENDER))
-#define CLUTTER_EVENT_EXTENDER_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), CLUTTER_TYPE_EVENT_EXTENDER, ClutterEventExtenderInterface))
-
-struct _ClutterEventExtenderInterface
-{
- GTypeInterface g_iface;
-
- void (* copy_event_data) (ClutterEventExtender *event_extender,
- const ClutterEvent *src,
- ClutterEvent *dest);
- void (* free_event_data) (ClutterEventExtender *event_extender,
- ClutterEvent *event);
-};
-
-GType clutter_event_extender_get_type (void) G_GNUC_CONST;
-
/* device manager */
void _clutter_device_manager_add_device (ClutterDeviceManager *device_manager,
ClutterInputDevice *device);
diff --git a/clutter/clutter/clutter-device-manager.c b/clutter/clutter/clutter-device-manager.c
index b2e73772f..6b9d368db 100644
--- a/clutter/clutter/clutter-device-manager.c
+++ b/clutter/clutter/clutter-device-manager.c
@@ -91,15 +91,6 @@ G_DEFINE_ABSTRACT_TYPE_WITH_PRIVATE (ClutterDeviceManager,
clutter_device_manager,
G_TYPE_OBJECT)
-G_DEFINE_INTERFACE (ClutterEventExtender,
- clutter_event_extender,
- CLUTTER_TYPE_DEVICE_MANAGER)
-
-static void
-clutter_event_extender_default_init (ClutterEventExtenderInterface *iface)
-{
-}
-
static void
clutter_device_manager_set_property (GObject *gobject,
guint prop_id,
diff --git a/clutter/clutter/clutter-device-manager.h b/clutter/clutter/clutter-device-manager.h
index 2927f1296..f539c7c73 100644
--- a/clutter/clutter/clutter-device-manager.h
+++ b/clutter/clutter/clutter-device-manager.h
@@ -123,8 +123,16 @@ struct _ClutterDeviceManagerClass
/* Keyboard accessbility */
void (* apply_kbd_a11y_settings) (ClutterDeviceManager *device_manger,
ClutterKbdA11ySettings *settings);
+
+ /* Event platform data */
+ void (* copy_event_data) (ClutterDeviceManager *device_manager,
+ const ClutterEvent *src,
+ ClutterEvent *dest);
+ void (* free_event_data) (ClutterDeviceManager *device_manager,
+ ClutterEvent *event);
+
/* padding */
- gpointer _padding[6];
+ gpointer _padding[4];
};
CLUTTER_EXPORT
diff --git a/clutter/clutter/evdev/clutter-device-manager-evdev.c b/clutter/clutter/evdev/clutter-device-manager-evdev.c
index dc8d4fb05..f3562a9e4 100644
--- a/clutter/clutter/evdev/clutter-device-manager-evdev.c
+++ b/clutter/clutter/evdev/clutter-device-manager-evdev.c
@@ -110,14 +110,10 @@ struct _ClutterDeviceManagerEvdevPrivate
GList *free_device_ids;
};
-static void clutter_device_manager_evdev_event_extender_init (ClutterEventExtenderInterface *iface);
-
G_DEFINE_TYPE_WITH_CODE (ClutterDeviceManagerEvdev,
clutter_device_manager_evdev,
CLUTTER_TYPE_DEVICE_MANAGER,
- G_ADD_PRIVATE (ClutterDeviceManagerEvdev)
- G_IMPLEMENT_INTERFACE (CLUTTER_TYPE_EVENT_EXTENDER,
- clutter_device_manager_evdev_event_extender_init))
+ G_ADD_PRIVATE (ClutterDeviceManagerEvdev))
static ClutterOpenDeviceCallback device_open_callback;
static ClutterCloseDeviceCallback device_close_callback;
@@ -148,7 +144,7 @@ static const char *device_type_str[] = {
*/
static void
-clutter_device_manager_evdev_copy_event_data (ClutterEventExtender *event_extender,
+clutter_device_manager_evdev_copy_event_data (ClutterDeviceManager *device_manager,
const ClutterEvent *src,
ClutterEvent *dest)
{
@@ -160,7 +156,7 @@ clutter_device_manager_evdev_copy_event_data (ClutterEventExtender *event_extend
}
static void
-clutter_device_manager_evdev_free_event_data (ClutterEventExtender *event_extender,
+clutter_device_manager_evdev_free_event_data (ClutterDeviceManager *device_manager,
ClutterEvent *event)
{
ClutterEventEvdev *event_evdev;
@@ -170,13 +166,6 @@ clutter_device_manager_evdev_free_event_data (ClutterEventExtender *event_extend
_clutter_event_evdev_free (event_evdev);
}
-static void
-clutter_device_manager_evdev_event_extender_init (ClutterEventExtenderInterface *iface)
-{
- iface->copy_event_data = clutter_device_manager_evdev_copy_event_data;
- iface->free_event_data = clutter_device_manager_evdev_free_event_data;
-}
-
/*
* ClutterEventSource for reading input devices
*/
@@ -2047,6 +2036,8 @@ clutter_device_manager_evdev_class_init (ClutterDeviceManagerEvdevClass *klass)
manager_class->get_supported_virtual_device_types = clutter_device_manager_evdev_get_supported_virtual_device_types;
manager_class->compress_motion = clutter_device_manager_evdev_compress_motion;
manager_class->apply_kbd_a11y_settings = clutter_device_manager_evdev_apply_kbd_a11y_settings;
+ manager_class->copy_event_data = clutter_device_manager_evdev_copy_event_data;
+ manager_class->free_event_data = clutter_device_manager_evdev_free_event_data;
}
static void
diff --git a/clutter/clutter/x11/clutter-device-manager-xi2.c b/clutter/clutter/x11/clutter-device-manager-xi2.c
index 3a27b69e5..5128a16b2 100644
--- a/clutter/clutter/x11/clutter-device-manager-xi2.c
+++ b/clutter/clutter/x11/clutter-device-manager-xi2.c
@@ -96,18 +96,14 @@ enum
static Atom clutter_input_axis_atoms[N_AXIS_ATOMS] = { 0, };
-static void clutter_event_extender_iface_init (ClutterEventExtenderInterface *iface);
-
#define clutter_device_manager_xi2_get_type _clutter_device_manager_xi2_get_type
-G_DEFINE_TYPE_WITH_CODE (ClutterDeviceManagerXI2,
- clutter_device_manager_xi2,
- CLUTTER_TYPE_DEVICE_MANAGER,
- G_IMPLEMENT_INTERFACE (CLUTTER_TYPE_EVENT_EXTENDER,
- clutter_event_extender_iface_init))
+G_DEFINE_TYPE (ClutterDeviceManagerXI2,
+ clutter_device_manager_xi2,
+ CLUTTER_TYPE_DEVICE_MANAGER)
static void
-clutter_device_manager_x11_copy_event_data (ClutterEventExtender *event_extender,
+clutter_device_manager_xi2_copy_event_data (ClutterDeviceManager *device_manager,
const ClutterEvent *src,
ClutterEvent *dest)
{
@@ -119,7 +115,7 @@ clutter_device_manager_x11_copy_event_data (ClutterEventExtender *event_extender
}
static void
-clutter_device_manager_x11_free_event_data (ClutterEventExtender *event_extender,
+clutter_device_manager_xi2_free_event_data (ClutterDeviceManager *device_manager,
ClutterEvent *event)
{
gpointer event_x11;
@@ -130,13 +126,6 @@ clutter_device_manager_x11_free_event_data (ClutterEventExtender *event_extender
}
static void
-clutter_event_extender_iface_init (ClutterEventExtenderInterface *iface)
-{
- iface->copy_event_data = clutter_device_manager_x11_copy_event_data;
- iface->free_event_data = clutter_device_manager_x11_free_event_data;
-}
-
-static void
translate_valuator_class (Display *xdisplay,
ClutterInputDevice *device,
XIValuatorClassInfo *class)
@@ -2220,6 +2209,8 @@ clutter_device_manager_xi2_class_init (ClutterDeviceManagerXI2Class *klass)
manager_class->create_virtual_device = clutter_device_manager_xi2_create_virtual_device;
manager_class->get_supported_virtual_device_types = clutter_device_manager_xi2_get_supported_virtual_device_types;
manager_class->apply_kbd_a11y_settings = clutter_device_manager_x11_apply_kbd_a11y_settings;
+ manager_class->copy_event_data = clutter_device_manager_xi2_copy_event_data;
+ manager_class->free_event_data = clutter_device_manager_xi2_free_event_data;
}
static void