Blob Blame History Raw
From 901ba985e6a208dc38fa82e544581290610310c5 Mon Sep 17 00:00:00 2001
From: Fabio Valentini <decathorpe@gmail.com>
Date: Tue, 16 Jul 2019 10:28:00 +0200
Subject: [PATCH 26/28] backends: Add MetaInputMapper method to lookup devices
 from outputs

---
 src/backends/meta-input-mapper-private.h |  7 +++++++
 src/backends/meta-input-mapper.c         | 23 +++++++++++++++++++++++
 2 files changed, 30 insertions(+)

diff --git a/src/backends/meta-input-mapper-private.h b/src/backends/meta-input-mapper-private.h
index 53bc66b06..15c4605ed 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 <clutter/clutter.h>
+#include "meta-monitor-manager-private.h"
 
 #define META_TYPE_INPUT_MAPPER (meta_input_mapper_get_type ())
 
@@ -37,4 +38,10 @@ 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;
+}
-- 
2.21.0