[mutter/gnome-3-36] Revert "wayland: Send clipboard offers to all data devices from the same client"
- From: Robert Mader <rmader src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter/gnome-3-36] Revert "wayland: Send clipboard offers to all data devices from the same client"
- Date: Wed, 24 Jun 2020 20:21:13 +0000 (UTC)
commit 78248d8dd3226cc79d57da3c10ef1eeb71126c7a
Author: Robert Mader <robert mader posteo de>
Date: Wed Jun 24 21:29:14 2020 +0200
Revert "wayland: Send clipboard offers to all data devices from the same client"
This reverts commit 36f5a0a491c92c41ff7526390d09d1b61780c8c7.
https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1330
src/wayland/meta-wayland-data-device.c | 46 +++++-----------------------------
src/wayland/meta-wayland-data-device.h | 1 -
2 files changed, 6 insertions(+), 41 deletions(-)
---
diff --git a/src/wayland/meta-wayland-data-device.c b/src/wayland/meta-wayland-data-device.c
index 37f23e7b32..fb5992ea0d 100644
--- a/src/wayland/meta-wayland-data-device.c
+++ b/src/wayland/meta-wayland-data-device.c
@@ -108,30 +108,6 @@ static struct wl_resource * create_and_send_primary_offer (MetaWaylandDataDevi
struct wl_resource *target);
static struct wl_resource * meta_wayland_data_source_get_resource (MetaWaylandDataSource *source);
-static void
-move_resources (struct wl_list *destination,
- struct wl_list *source)
-{
- wl_list_insert_list (destination, source);
- wl_list_init (source);
-}
-
-static void
-move_resources_for_client (struct wl_list *destination,
- struct wl_list *source,
- struct wl_client *client)
-{
- struct wl_resource *resource, *tmp;
- wl_resource_for_each_safe (resource, tmp, source)
- {
- if (wl_resource_get_client (resource) == client)
- {
- wl_list_remove (wl_resource_get_link (resource));
- wl_list_insert (destination, wl_resource_get_link (resource));
- }
- }
-}
-
static void
unbind_resource (struct wl_resource *resource)
{
@@ -925,12 +901,6 @@ meta_wayland_drag_grab_set_focus (MetaWaylandDragGrab *drag_grab,
client = wl_resource_get_client (surface->resource);
data_device_resource = wl_resource_find_for_client (&seat->data_device.resource_list, client);
- if (!data_device_resource)
- {
- data_device_resource =
- wl_resource_find_for_client (&seat->data_device.focus_resource_list,
- client);
- }
if (source && data_device_resource)
offer = create_and_send_dnd_offer (source, data_device_resource);
@@ -1890,7 +1860,10 @@ owner_changed_cb (MetaSelection *selection,
}
else if (selection_type == META_SELECTION_CLIPBOARD)
{
- wl_resource_for_each (data_device_resource, &data_device->focus_resource_list)
+ data_device_resource =
+ wl_resource_find_for_client (&data_device->resource_list, focus_client);
+
+ if (data_device_resource)
{
struct wl_resource *offer = NULL;
@@ -2025,7 +1998,6 @@ void
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);
}
@@ -2108,20 +2080,14 @@ meta_wayland_data_device_set_keyboard_focus (MetaWaylandDataDevice *data_device)
return;
data_device->focus_client = focus_client;
- move_resources (&data_device->resource_list,
- &data_device->focus_resource_list);
if (!focus_client)
return;
- move_resources_for_client (&data_device->focus_resource_list,
- &data_device->resource_list,
- focus_client);
-
- wl_resource_for_each (data_device_resource, &data_device->focus_resource_list)
+ data_device_resource = wl_resource_find_for_client (&data_device->resource_list, focus_client);
+ if (data_device_resource)
{
struct wl_resource *offer;
-
offer = create_and_send_clipboard_offer (data_device, data_device_resource);
wl_data_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 7ebaca3266..027dafc544 100644
--- a/src/wayland/meta-wayland-data-device.h
+++ b/src/wayland/meta-wayland-data-device.h
@@ -63,7 +63,6 @@ struct _MetaWaylandDataDevice
MetaWaylandDataSource *primary_data_source;
struct wl_listener selection_data_source_listener;
struct wl_list resource_list;
- struct wl_list focus_resource_list;
struct wl_list primary_resource_list;
MetaWaylandDragGrab *current_grab;
struct wl_client *focus_client;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]