data-device: make old offers inert before sending selection

Fixes https://github.com/swaywm/wlroots/issues/1383
This commit is contained in:
emersion 2019-02-18 16:36:23 +01:00
parent fd0b625ab9
commit 07e1bedb08
No known key found for this signature in database
GPG Key ID: 0FDE7BE0E88F5E48
1 changed files with 7 additions and 0 deletions

View File

@ -126,6 +126,13 @@ void seat_client_send_selection(struct wlr_seat_client *seat_client) {
source->accepted = false;
}
// Make all current offers inert
struct wlr_data_offer *offer, *tmp;
wl_list_for_each_safe(offer, tmp,
&seat_client->seat->selection_offers, link) {
data_offer_destroy(offer);
}
struct wl_resource *device_resource;
wl_resource_for_each(device_resource, &seat_client->data_devices) {
device_resource_send_selection(device_resource);