[mutter/wip/carlosg/input-thread: 112/130] clutter: Drop clutter_input_device_get_associated_device()




commit 5f67eb18ed9f055e390118c74f209edc3057b4e4
Author: Carlos Garnacho <carlosg gnome org>
Date:   Wed Nov 18 17:51:48 2020 +0100

    clutter: Drop clutter_input_device_get_associated_device()
    
    And the private setter. One may ask the seat for the pointer/keyboard
    instead of asking the device for its counterpart.

 clutter/clutter/clutter-input-device-private.h |  6 --
 clutter/clutter/clutter-input-device.c         | 70 ----------------------
 clutter/clutter/clutter-input-device.h         |  3 -
 src/backends/native/meta-seat-impl.c           | 10 +---
 src/backends/x11/meta-seat-x11.c               | 80 +-------------------------
 5 files changed, 4 insertions(+), 165 deletions(-)
---
diff --git a/clutter/clutter/clutter-input-device-private.h b/clutter/clutter/clutter-input-device-private.h
index 6fe519bdb2..3c54137642 100644
--- a/clutter/clutter/clutter-input-device-private.h
+++ b/clutter/clutter/clutter-input-device-private.h
@@ -85,9 +85,6 @@ struct _ClutterInputDevice
 
   ClutterBackend *backend;
 
-  /* the associated device */
-  ClutterInputDevice *associated;
-
   /* the actor underneath the pointer */
   ClutterActor *cursor_actor;
   GHashTable   *inv_touch_sequence_actors;
@@ -136,9 +133,6 @@ struct _ClutterInputDevice
   ClutterPtrA11yData *ptr_a11y_data;
 };
 
-CLUTTER_EXPORT
-void _clutter_input_device_set_associated_device (ClutterInputDevice *device,
-                                                  ClutterInputDevice *associated);
 CLUTTER_EXPORT
 void clutter_input_device_update_from_tool (ClutterInputDevice     *device,
                                             ClutterInputDeviceTool *tool);
diff --git a/clutter/clutter/clutter-input-device.c b/clutter/clutter/clutter-input-device.c
index 41a941ad98..b8b10fd35c 100644
--- a/clutter/clutter/clutter-input-device.c
+++ b/clutter/clutter/clutter-input-device.c
@@ -94,13 +94,6 @@ clutter_input_device_dispose (GObject *gobject)
   g_clear_pointer (&device->product_id, g_free);
   g_clear_pointer (&device->node_path, g_free);
 
-  if (device->associated != NULL)
-    {
-      _clutter_input_device_set_associated_device (device->associated, NULL);
-      g_object_unref (device->associated);
-      device->associated = NULL;
-    }
-
   if (device->accessibility_virtual_device)
     g_clear_object (&device->accessibility_virtual_device);
 
@@ -1073,69 +1066,6 @@ _clutter_input_device_remove_event_sequence (ClutterInputDevice *device,
     }
 }
 
-/*< internal >
- * clutter_input_device_set_associated_device:
- * @device: a #ClutterInputDevice
- * @associated: (allow-none): a #ClutterInputDevice, or %NULL
- *
- * Sets the associated device for @device.
- *
- * This function keeps a reference on the associated device.
- */
-void
-_clutter_input_device_set_associated_device (ClutterInputDevice *device,
-                                             ClutterInputDevice *associated)
-{
-  if (device->associated == associated)
-    return;
-
-  if (device->associated != NULL)
-    g_object_unref (device->associated);
-
-  device->associated = associated;
-  if (device->associated != NULL)
-    g_object_ref (device->associated);
-
-  CLUTTER_NOTE (MISC, "Associating device '%s' to device '%s'",
-                clutter_input_device_get_device_name (device),
-                device->associated != NULL
-                  ? clutter_input_device_get_device_name (device->associated)
-                  : "(none)");
-
-  if (device->device_mode != CLUTTER_INPUT_MODE_LOGICAL)
-    {
-      if (device->associated != NULL)
-        device->device_mode = CLUTTER_INPUT_MODE_PHYSICAL;
-      else
-        device->device_mode = CLUTTER_INPUT_MODE_FLOATING;
-
-      g_object_notify_by_pspec (G_OBJECT (device), obj_props[PROP_DEVICE_MODE]);
-    }
-}
-
-/**
- * clutter_input_device_get_associated_device:
- * @device: a #ClutterInputDevice
- *
- * Retrieves a pointer to the #ClutterInputDevice that has been
- * associated to @device.
- *
- * If the #ClutterInputDevice:device-mode property of @device is
- * set to %CLUTTER_INPUT_MODE_LOGICAL, this function will return
- * %NULL.
- *
- * Return value: (transfer none): a #ClutterInputDevice, or %NULL
- *
- * Since: 1.6
- */
-ClutterInputDevice *
-clutter_input_device_get_associated_device (ClutterInputDevice *device)
-{
-  g_return_val_if_fail (CLUTTER_IS_INPUT_DEVICE (device), NULL);
-
-  return device->associated;
-}
-
 /**
  * clutter_input_device_keycode_to_evdev:
  * @device: A #ClutterInputDevice
diff --git a/clutter/clutter/clutter-input-device.h b/clutter/clutter/clutter-input-device.h
index 42948f5914..8ae53f82d9 100644
--- a/clutter/clutter/clutter-input-device.h
+++ b/clutter/clutter/clutter-input-device.h
@@ -104,9 +104,6 @@ gboolean                clutter_input_device_get_axis_value     (ClutterInputDev
                                                                  ClutterInputAxis     axis,
                                                                  gdouble             *value);
 
-CLUTTER_EXPORT
-ClutterInputDevice *    clutter_input_device_get_associated_device (ClutterInputDevice *device);
-
 CLUTTER_EXPORT
 void                    clutter_input_device_grab               (ClutterInputDevice  *device,
                                                                  ClutterActor        *actor);
diff --git a/src/backends/native/meta-seat-impl.c b/src/backends/native/meta-seat-impl.c
index 6530a89310..db34c4a22c 100644
--- a/src/backends/native/meta-seat-impl.c
+++ b/src/backends/native/meta-seat-impl.c
@@ -1501,7 +1501,7 @@ evdev_add_device (MetaSeatImpl           *seat_impl,
                   struct libinput_device *libinput_device)
 {
   ClutterInputDeviceType type;
-  ClutterInputDevice *device, *master = NULL;
+  ClutterInputDevice *device;
   gboolean is_touchscreen, is_tablet_switch;
 
   device = meta_input_device_native_new (seat_impl, libinput_device);
@@ -1512,14 +1512,6 @@ evdev_add_device (MetaSeatImpl           *seat_impl,
    * ClutterInputDevice API */
   type = meta_input_device_native_determine_type (libinput_device);
 
-  if (type == CLUTTER_KEYBOARD_DEVICE)
-    master = seat_impl->core_keyboard;
-  else if (type == CLUTTER_POINTER_DEVICE)
-    master = seat_impl->core_pointer;
-
-  if (master)
-    _clutter_input_device_set_associated_device (device, master);
-
   is_touchscreen = type == CLUTTER_TOUCHSCREEN_DEVICE;
   is_tablet_switch =
     device_is_tablet_switch (META_INPUT_DEVICE_NATIVE (device));
diff --git a/src/backends/x11/meta-seat-x11.c b/src/backends/x11/meta-seat-x11.c
index 30fbf6b041..a8f4f9fd11 100644
--- a/src/backends/x11/meta-seat-x11.c
+++ b/src/backends/x11/meta-seat-x11.c
@@ -615,8 +615,7 @@ update_touch_mode (MetaSeatX11 *seat_x11)
 static ClutterInputDevice *
 add_device (MetaSeatX11    *seat_x11,
             ClutterBackend *backend,
-            XIDeviceInfo   *info,
-            gboolean        in_construction)
+            XIDeviceInfo   *info)
 {
   ClutterInputDevice *device;
 
@@ -652,21 +651,6 @@ add_device (MetaSeatX11    *seat_x11,
   if (clutter_input_device_get_device_type (device) == CLUTTER_PAD_DEVICE)
     pad_passive_button_grab (device);
 
-  /* relationships between devices and signal emissions are not
-   * necessary while we're constructing the device manager instance
-   */
-  if (!in_construction)
-    {
-      if (info->use == XISlavePointer || info->use == XISlaveKeyboard)
-        {
-          ClutterInputDevice *logical;
-
-          logical = g_hash_table_lookup (seat_x11->devices_by_id,
-                                         GINT_TO_POINTER (info->attachment));
-          _clutter_input_device_set_associated_device (device, logical);
-        }
-    }
-
   return device;
 }
 
@@ -741,21 +725,6 @@ meta_seat_x11_handle_event_post (ClutterSeat        *seat,
   return TRUE;
 }
 
-static void
-relate_logical_devices (gpointer key,
-                        gpointer value,
-                        gpointer data)
-{
-  MetaSeatX11 *seat_x11 = data;
-  ClutterInputDevice *device, *relative;
-
-  device = g_hash_table_lookup (seat_x11->devices_by_id, key);
-  relative = g_hash_table_lookup (seat_x11->devices_by_id, value);
-
-  _clutter_input_device_set_associated_device (device, relative);
-  _clutter_input_device_set_associated_device (relative, device);
-}
-
 static uint
 device_get_tool_serial (ClutterInputDevice *device)
 {
@@ -814,7 +783,7 @@ translate_hierarchy_event (ClutterBackend   *backend,
             {
               ClutterInputDevice *device;
 
-              device = add_device (seat_x11, backend, &info[0], FALSE);
+              device = add_device (seat_x11, backend, &info[0]);
 
               event->any.type = CLUTTER_DEVICE_ADDED;
               event->any.time = ev->time;
@@ -848,40 +817,10 @@ translate_hierarchy_event (ClutterBackend   *backend,
       else if ((ev->info[i].flags & XISlaveAttached) ||
                (ev->info[i].flags & XISlaveDetached))
         {
-          ClutterInputDevice *logical, *physical;
-          XIDeviceInfo *info;
-          int n_devices;
-
           g_debug ("Hierarchy event: physical device %s",
                    (ev->info[i].flags & XISlaveAttached)
                    ? "attached"
                    : "detached");
-
-          physical = g_hash_table_lookup (seat_x11->devices_by_id,
-                                          GINT_TO_POINTER (ev->info[i].deviceid));
-          logical = clutter_input_device_get_associated_device (physical);
-
-          /* detach the physical device in both cases */
-          if (logical != NULL)
-            _clutter_input_device_set_associated_device (physical, NULL);
-
-          /* and attach the physical device to the new logical device if needed */
-          if (ev->info[i].flags & XISlaveAttached)
-            {
-              clutter_x11_trap_x_errors ();
-              info = XIQueryDevice (clutter_x11_get_default_display (),
-                                    ev->info[i].deviceid,
-                                    &n_devices);
-              clutter_x11_untrap_x_errors ();
-              if (info != NULL)
-                {
-                  logical = g_hash_table_lookup (seat_x11->devices_by_id,
-                                                 GINT_TO_POINTER (info->attachment));
-                  if (logical != NULL)
-                    _clutter_input_device_set_associated_device (physical, logical);
-                  XIFreeDeviceInfo (info);
-                }
-            }
         }
     }
 
@@ -1389,7 +1328,6 @@ meta_seat_x11_constructed (GObject *object)
 {
   MetaSeatX11 *seat_x11 = META_SEAT_X11 (object);
   ClutterBackend *backend = clutter_get_default_backend ();
-  GHashTable *logical_devices;
   XIDeviceInfo *info;
   XIEventMask event_mask;
   unsigned char mask[XIMaskLen(XI_LASTEVENT)] = { 0, };
@@ -1397,7 +1335,6 @@ meta_seat_x11_constructed (GObject *object)
   Display *xdisplay;
 
   xdisplay = clutter_x11_get_default_display ();
-  logical_devices = g_hash_table_new (NULL, NULL);
 
   info = XIQueryDevice (clutter_x11_get_default_display (),
                         XIAllDevices, &n_devices);
@@ -1409,22 +1346,11 @@ meta_seat_x11_constructed (GObject *object)
       if (!xi_device->enabled)
         continue;
 
-      add_device (seat_x11, backend, xi_device, TRUE);
-
-      if (xi_device->use == XIMasterPointer ||
-          xi_device->use == XIMasterKeyboard)
-        {
-          g_hash_table_insert (logical_devices,
-                               GINT_TO_POINTER (xi_device->deviceid),
-                               GINT_TO_POINTER (xi_device->attachment));
-        }
+      add_device (seat_x11, backend, xi_device);
     }
 
   XIFreeDeviceInfo (info);
 
-  g_hash_table_foreach (logical_devices, relate_logical_devices, seat_x11);
-  g_hash_table_destroy (logical_devices);
-
   XISetMask (mask, XI_HierarchyChanged);
   XISetMask (mask, XI_DeviceChanged);
   XISetMask (mask, XI_PropertyEvent);


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]