diff --git a/src/backends/meta-input-mapper-private.h b/src/backends/meta-input-mapper-private.h index 53bc66b06..34314577f 100644 --- a/src/backends/meta-input-mapper-private.h +++ b/src/backends/meta-input-mapper-private.h @@ -23,6 +23,7 @@ #define META_INPUT_MAPPER_H #include +#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 */ diff --git a/src/backends/meta-input-mapper.c b/src/backends/meta-input-mapper.c index 026dacb58..013c2a427 100644 --- a/src/backends/meta-input-mapper.c +++ b/src/backends/meta-input-mapper.c @@ -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; +}