clutter: Move platform event data management to ClutterSeat

https://gitlab.gnome.org/GNOME/mutter/merge_requests/852
This commit is contained in:
Carlos Garnacho 2019-10-01 18:21:00 +02:00
parent c5b89d9a86
commit 11f3db6693
7 changed files with 67 additions and 67 deletions

View File

@ -770,24 +770,24 @@ _clutter_backend_copy_event_data (ClutterBackend *backend,
const ClutterEvent *src, const ClutterEvent *src,
ClutterEvent *dest) ClutterEvent *dest)
{ {
ClutterDeviceManagerClass *device_manager_class; ClutterSeatClass *seat_class;
ClutterDeviceManager *device_manager; ClutterSeat *seat;
device_manager = clutter_device_manager_get_default (); seat = clutter_backend_get_default_seat (backend);
device_manager_class = CLUTTER_DEVICE_MANAGER_GET_CLASS (device_manager); seat_class = CLUTTER_SEAT_GET_CLASS (seat);
device_manager_class->copy_event_data (device_manager, src, dest); seat_class->copy_event_data (seat, src, dest);
} }
void void
_clutter_backend_free_event_data (ClutterBackend *backend, _clutter_backend_free_event_data (ClutterBackend *backend,
ClutterEvent *event) ClutterEvent *event)
{ {
ClutterDeviceManagerClass *device_manager_class; ClutterSeatClass *seat_class;
ClutterDeviceManager *device_manager; ClutterSeat *seat;
device_manager = clutter_device_manager_get_default (); seat = clutter_backend_get_default_seat (backend);
device_manager_class = CLUTTER_DEVICE_MANAGER_GET_CLASS (device_manager); seat_class = CLUTTER_SEAT_GET_CLASS (seat);
device_manager_class->free_event_data (device_manager, event); seat_class->free_event_data (seat, event);
} }
/** /**

View File

@ -124,13 +124,6 @@ struct _ClutterDeviceManagerClass
void (* apply_kbd_a11y_settings) (ClutterDeviceManager *device_manger, void (* apply_kbd_a11y_settings) (ClutterDeviceManager *device_manger,
ClutterKbdA11ySettings *settings); 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 */ /* padding */
gpointer _padding[4]; gpointer _padding[4];
}; };

View File

@ -50,6 +50,13 @@ struct _ClutterSeatClass
void (* bell_notify) (ClutterSeat *seat); void (* bell_notify) (ClutterSeat *seat);
ClutterKeymap * (* get_keymap) (ClutterSeat *seat); ClutterKeymap * (* get_keymap) (ClutterSeat *seat);
/* Event platform data */
void (* copy_event_data) (ClutterSeat *seat,
const ClutterEvent *src,
ClutterEvent *dest);
void (* free_event_data) (ClutterSeat *seat,
ClutterEvent *event);
}; };
CLUTTER_EXPORT CLUTTER_EXPORT

View File

@ -53,29 +53,6 @@ G_DEFINE_TYPE_WITH_CODE (MetaDeviceManagerNative,
CLUTTER_TYPE_DEVICE_MANAGER, CLUTTER_TYPE_DEVICE_MANAGER,
G_ADD_PRIVATE (MetaDeviceManagerNative)) G_ADD_PRIVATE (MetaDeviceManagerNative))
static void
meta_device_manager_native_copy_event_data (ClutterDeviceManager *device_manager,
const ClutterEvent *src,
ClutterEvent *dest)
{
MetaEventNative *event_evdev;
event_evdev = _clutter_event_get_platform_data (src);
if (event_evdev != NULL)
_clutter_event_set_platform_data (dest, meta_event_native_copy (event_evdev));
}
static void
meta_device_manager_native_free_event_data (ClutterDeviceManager *device_manager,
ClutterEvent *event)
{
MetaEventNative *event_evdev;
event_evdev = _clutter_event_get_platform_data (event);
if (event_evdev != NULL)
meta_event_native_free (event_evdev);
}
/* /*
* ClutterDeviceManager implementation * ClutterDeviceManager implementation
*/ */
@ -215,8 +192,6 @@ meta_device_manager_native_class_init (MetaDeviceManagerNativeClass *klass)
manager_class->get_supported_virtual_device_types = meta_device_manager_native_get_supported_virtual_device_types; manager_class->get_supported_virtual_device_types = meta_device_manager_native_get_supported_virtual_device_types;
manager_class->compress_motion = meta_device_manager_native_compress_motion; manager_class->compress_motion = meta_device_manager_native_compress_motion;
manager_class->apply_kbd_a11y_settings = meta_device_manager_native_apply_kbd_a11y_settings; manager_class->apply_kbd_a11y_settings = meta_device_manager_native_apply_kbd_a11y_settings;
manager_class->copy_event_data = meta_device_manager_native_copy_event_data;
manager_class->free_event_data = meta_device_manager_native_free_event_data;
} }
static void static void

View File

@ -2533,6 +2533,29 @@ meta_seat_native_get_keymap (ClutterSeat *seat)
return CLUTTER_KEYMAP (seat_native->keymap); return CLUTTER_KEYMAP (seat_native->keymap);
} }
static void
meta_seat_native_copy_event_data (ClutterSeat *seat,
const ClutterEvent *src,
ClutterEvent *dest)
{
MetaEventNative *event_evdev;
event_evdev = _clutter_event_get_platform_data (src);
if (event_evdev != NULL)
_clutter_event_set_platform_data (dest, meta_event_native_copy (event_evdev));
}
static void
meta_seat_native_free_event_data (ClutterSeat *seat,
ClutterEvent *event)
{
MetaEventNative *event_evdev;
event_evdev = _clutter_event_get_platform_data (event);
if (event_evdev != NULL)
meta_event_native_free (event_evdev);
}
static void static void
meta_seat_native_class_init (MetaSeatNativeClass *klass) meta_seat_native_class_init (MetaSeatNativeClass *klass)
{ {
@ -2550,6 +2573,8 @@ meta_seat_native_class_init (MetaSeatNativeClass *klass)
seat_class->list_devices = meta_seat_native_list_devices; seat_class->list_devices = meta_seat_native_list_devices;
seat_class->bell_notify = meta_seat_native_bell_notify; seat_class->bell_notify = meta_seat_native_bell_notify;
seat_class->get_keymap = meta_seat_native_get_keymap; seat_class->get_keymap = meta_seat_native_get_keymap;
seat_class->copy_event_data = meta_seat_native_copy_event_data;
seat_class->free_event_data = meta_seat_native_free_event_data;
props[PROP_SEAT_ID] = props[PROP_SEAT_ID] =
g_param_spec_string ("seat-id", g_param_spec_string ("seat-id",

View File

@ -52,29 +52,6 @@ G_DEFINE_TYPE (MetaDeviceManagerX11,
meta_device_manager_x11, meta_device_manager_x11,
CLUTTER_TYPE_DEVICE_MANAGER) CLUTTER_TYPE_DEVICE_MANAGER)
static void
meta_device_manager_x11_copy_event_data (ClutterDeviceManager *device_manager,
const ClutterEvent *src,
ClutterEvent *dest)
{
gpointer event_x11;
event_x11 = _clutter_event_get_platform_data (src);
if (event_x11 != NULL)
_clutter_event_set_platform_data (dest, meta_event_x11_copy (event_x11));
}
static void
meta_device_manager_x11_free_event_data (ClutterDeviceManager *device_manager,
ClutterEvent *event)
{
gpointer event_x11;
event_x11 = _clutter_event_get_platform_data (event);
if (event_x11 != NULL)
meta_event_x11_free (event_x11);
}
static void static void
meta_device_manager_x11_select_stage_events (ClutterDeviceManager *manager, meta_device_manager_x11_select_stage_events (ClutterDeviceManager *manager,
ClutterStage *stage) ClutterStage *stage)
@ -301,8 +278,6 @@ meta_device_manager_x11_class_init (MetaDeviceManagerX11Class *klass)
manager_class->create_virtual_device = meta_device_manager_x11_create_virtual_device; manager_class->create_virtual_device = meta_device_manager_x11_create_virtual_device;
manager_class->get_supported_virtual_device_types = meta_device_manager_x11_get_supported_virtual_device_types; manager_class->get_supported_virtual_device_types = meta_device_manager_x11_get_supported_virtual_device_types;
manager_class->apply_kbd_a11y_settings = meta_device_manager_x11_apply_kbd_a11y_settings; manager_class->apply_kbd_a11y_settings = meta_device_manager_x11_apply_kbd_a11y_settings;
manager_class->copy_event_data = meta_device_manager_x11_copy_event_data;
manager_class->free_event_data = meta_device_manager_x11_free_event_data;
} }
static void static void

View File

@ -1456,6 +1456,29 @@ meta_seat_x11_get_keymap (ClutterSeat *seat)
return CLUTTER_KEYMAP (META_SEAT_X11 (seat)->keymap); return CLUTTER_KEYMAP (META_SEAT_X11 (seat)->keymap);
} }
static void
meta_seat_x11_copy_event_data (ClutterSeat *seat,
const ClutterEvent *src,
ClutterEvent *dest)
{
gpointer event_x11;
event_x11 = _clutter_event_get_platform_data (src);
if (event_x11 != NULL)
_clutter_event_set_platform_data (dest, meta_event_x11_copy (event_x11));
}
static void
meta_seat_x11_free_event_data (ClutterSeat *seat,
ClutterEvent *event)
{
gpointer event_x11;
event_x11 = _clutter_event_get_platform_data (event);
if (event_x11 != NULL)
meta_event_x11_free (event_x11);
}
static void static void
meta_seat_x11_class_init (MetaSeatX11Class *klass) meta_seat_x11_class_init (MetaSeatX11Class *klass)
{ {
@ -1472,6 +1495,8 @@ meta_seat_x11_class_init (MetaSeatX11Class *klass)
seat_class->list_devices = meta_seat_x11_list_devices; seat_class->list_devices = meta_seat_x11_list_devices;
seat_class->bell_notify = meta_seat_x11_bell_notify; seat_class->bell_notify = meta_seat_x11_bell_notify;
seat_class->get_keymap = meta_seat_x11_get_keymap; seat_class->get_keymap = meta_seat_x11_get_keymap;
seat_class->copy_event_data = meta_seat_x11_copy_event_data;
seat_class->free_event_data = meta_seat_x11_free_event_data;
props[PROP_OPCODE] = props[PROP_OPCODE] =
g_param_spec_int ("opcode", g_param_spec_int ("opcode",