clutter: Move platform event data management to ClutterSeat
https://gitlab.gnome.org/GNOME/mutter/merge_requests/852
This commit is contained in:
parent
c5b89d9a86
commit
11f3db6693
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -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];
|
||||||
};
|
};
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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",
|
||||||
|
@ -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
|
||||||
|
@ -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",
|
||||||
|
Loading…
x
Reference in New Issue
Block a user