[mutter/gnome-3-36] Revert "wayland: Send primary offer to all data devices from the same client"



commit 849d8dfae920e1f6074bc37e8444b4f5370135bc
Author: Robert Mader <robert mader posteo de>
Date:   Wed Jun 24 21:29:08 2020 +0200

    Revert "wayland: Send primary offer to all data devices from the same client"
    
    This reverts commit 493aeb65c8ed435c66bd951f830e145c1eaaf06d.
    
    https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1330

 src/wayland/meta-wayland-data-device.c | 16 ++++++----------
 src/wayland/meta-wayland-data-device.h |  1 -
 2 files changed, 6 insertions(+), 11 deletions(-)
---
diff --git a/src/wayland/meta-wayland-data-device.c b/src/wayland/meta-wayland-data-device.c
index 99759a774d..37f23e7b32 100644
--- a/src/wayland/meta-wayland-data-device.c
+++ b/src/wayland/meta-wayland-data-device.c
@@ -1871,7 +1871,10 @@ owner_changed_cb (MetaSelection         *selection,
 
   if (selection_type == META_SELECTION_PRIMARY)
     {
-      wl_resource_for_each (data_device_resource, &data_device->primary_focus_resource_list)
+      data_device_resource =
+        wl_resource_find_for_client (&data_device->primary_resource_list,
+                                     focus_client);
+      if (data_device_resource)
         {
           struct wl_resource *offer = NULL;
 
@@ -2024,7 +2027,6 @@ meta_wayland_data_device_init (MetaWaylandDataDevice *data_device)
   wl_list_init (&data_device->resource_list);
   wl_list_init (&data_device->focus_resource_list);
   wl_list_init (&data_device->primary_resource_list);
-  wl_list_init (&data_device->primary_focus_resource_list);
 }
 
 static struct wl_resource *
@@ -2108,8 +2110,6 @@ meta_wayland_data_device_set_keyboard_focus (MetaWaylandDataDevice *data_device)
   data_device->focus_client = focus_client;
   move_resources (&data_device->resource_list,
                   &data_device->focus_resource_list);
-  move_resources (&data_device->primary_resource_list,
-                  &data_device->primary_focus_resource_list);
 
   if (!focus_client)
     return;
@@ -2126,14 +2126,10 @@ meta_wayland_data_device_set_keyboard_focus (MetaWaylandDataDevice *data_device)
       wl_data_device_send_selection (data_device_resource, offer);
     }
 
-  move_resources_for_client (&data_device->primary_focus_resource_list,
-                             &data_device->primary_resource_list,
-                             focus_client);
-
-  wl_resource_for_each (data_device_resource, &data_device->primary_focus_resource_list)
+  data_device_resource = wl_resource_find_for_client (&data_device->primary_resource_list, focus_client);
+  if (data_device_resource)
     {
       struct wl_resource *offer;
-
       offer = create_and_send_primary_offer (data_device, data_device_resource);
       gtk_primary_selection_device_send_selection (data_device_resource, offer);
     }
diff --git a/src/wayland/meta-wayland-data-device.h b/src/wayland/meta-wayland-data-device.h
index efeaffed52..7ebaca3266 100644
--- a/src/wayland/meta-wayland-data-device.h
+++ b/src/wayland/meta-wayland-data-device.h
@@ -65,7 +65,6 @@ struct _MetaWaylandDataDevice
   struct wl_list resource_list;
   struct wl_list focus_resource_list;
   struct wl_list primary_resource_list;
-  struct wl_list primary_focus_resource_list;
   MetaWaylandDragGrab *current_grab;
   struct wl_client *focus_client;
 


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