aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--types/wlr_primary_selection.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/types/wlr_primary_selection.c b/types/wlr_primary_selection.c
index 9c267405..b8f3094b 100644
--- a/types/wlr_primary_selection.c
+++ b/types/wlr_primary_selection.c
@@ -253,6 +253,16 @@ void wlr_seat_set_primary_selection(struct wlr_seat *seat,
}
}
+
+static const struct gtk_primary_selection_device_interface device_impl;
+
+static struct wlr_seat_client *seat_client_from_device_resource(
+ struct wl_resource *resource) {
+ assert(wl_resource_instance_of(resource,
+ &gtk_primary_selection_device_interface, &device_impl));
+ return wl_resource_get_user_data(resource);
+}
+
static void device_handle_set_selection(struct wl_client *client,
struct wl_resource *resource, struct wl_resource *source_resource,
uint32_t serial) {
@@ -262,7 +272,7 @@ static void device_handle_set_selection(struct wl_client *client,
}
struct wlr_seat_client *seat_client =
- wlr_seat_client_from_resource(resource);
+ seat_client_from_device_resource(resource);
struct wlr_primary_selection_source *wlr_source =
(struct wlr_primary_selection_source *)source;