backends: Add MetaInputMapper method to lookup devices from outputs

So we may know the device of a certain ClutterInputDeviceType that is
mapped to the given output.
This commit is contained in:
Carlos Garnacho 2018-04-20 17:47:21 +02:00 committed by Georges Basile Stavracas Neto
parent 87858a4e01
commit faf89ff35f
2 changed files with 29 additions and 0 deletions

View File

@ -23,6 +23,7 @@
#define META_INPUT_MAPPER_H
#include <clutter/clutter.h>
#include "meta-monitor-manager-private.h"
#define META_TYPE_INPUT_MAPPER (meta_input_mapper_get_type ())
@ -37,4 +38,9 @@ void meta_input_mapper_add_device (MetaInputMapper *mapper,
void meta_input_mapper_remove_device (MetaInputMapper *mapper,
ClutterInputDevice *device);
ClutterInputDevice *
meta_input_mapper_get_logical_monitor_device (MetaInputMapper *mapper,
MetaLogicalMonitor *logical_monitor,
ClutterInputDeviceType device_type);
#endif /* META_INPUT_MAPPER_H */

View File

@ -615,3 +615,26 @@ meta_input_mapper_remove_device (MetaInputMapper *mapper,
g_hash_table_remove (mapper->input_devices, device);
}
}
ClutterInputDevice *
meta_input_mapper_get_logical_monitor_device (MetaInputMapper *mapper,
MetaLogicalMonitor *logical_monitor,
ClutterInputDeviceType device_type)
{
MetaMapperOutputInfo *output;
GList *l;
output = g_hash_table_lookup (mapper->output_devices, logical_monitor);
if (!output)
return NULL;
for (l = output->input_devices; l; l = l->next)
{
MetaMapperInputInfo *input = l->data;
if (clutter_input_device_get_device_type (input->device) == device_type)
return input->device;
}
return NULL;
}