diff --git a/types/wlr_gtk_primary_selection.c b/types/wlr_gtk_primary_selection.c index ca82b3e7..18bc624a 100644 --- a/types/wlr_gtk_primary_selection.c +++ b/types/wlr_gtk_primary_selection.c @@ -98,6 +98,7 @@ static void destroy_offer(struct wl_resource *resource) { struct client_data_source { struct wlr_primary_selection_source source; struct wl_resource *resource; + bool finalized; }; static void client_source_send( @@ -138,6 +139,9 @@ static void source_handle_offer(struct wl_client *client, if (source == NULL) { return; } + if (source->finalized) { + wlr_log(WLR_DEBUG, "Offering additional MIME type after set_selection"); + } char *dup_mime_type = strdup(mime_type); if (dup_mime_type == NULL) { @@ -200,6 +204,7 @@ static void device_handle_set_selection(struct wl_client *client, struct wlr_primary_selection_source *source = NULL; if (client_source != NULL) { + client_source->finalized = true; source = &client_source->source; }