device/xi2: Implement get_core_device()
We ask XI2 to get the client pointer for CLUTTER_POINTER_DEVICE, and we use the attached keyboard device for CLUTTER_KEYBOARD_DEVICE. For everything else, we return NULL.
This commit is contained in:
parent
9c48486d7a
commit
2cb0077f7d
@ -896,6 +896,31 @@ static ClutterInputDevice *
|
||||
clutter_device_manager_xi2_get_core_device (ClutterDeviceManager *manager,
|
||||
ClutterInputDeviceType device_type)
|
||||
{
|
||||
ClutterDeviceManagerXI2 *manager_xi2 = CLUTTER_DEVICE_MANAGER_XI2 (manager);
|
||||
ClutterBackendX11 *backend_x11;
|
||||
ClutterInputDevice *device;
|
||||
int device_id;
|
||||
|
||||
backend_x11 =
|
||||
CLUTTER_BACKEND_X11 (_clutter_device_manager_get_backend (manager));
|
||||
|
||||
XIGetClientPointer (backend_x11->xdpy, None, &device_id);
|
||||
|
||||
device = g_hash_table_lookup (manager_xi2->devices_by_id,
|
||||
GINT_TO_POINTER (device_id));
|
||||
|
||||
switch (device_type)
|
||||
{
|
||||
case CLUTTER_POINTER_DEVICE:
|
||||
return device;
|
||||
|
||||
case CLUTTER_KEYBOARD_DEVICE:
|
||||
return clutter_input_device_get_associated_device (device);
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user