Merge pull request #591 from emersion/fix-data-source-notify-finish

Fix assertion failed in data_source_notify_finish
This commit is contained in:
Drew DeVault 2018-01-28 15:54:21 -05:00 committed by GitHub
commit 60b2d969e0
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -173,16 +173,19 @@ static void data_offer_resource_destroy(struct wl_resource *resource) {
goto out; goto out;
} }
offer->source->offer = NULL;
// If the drag destination has version < 3, wl_data_offer.finish // If the drag destination has version < 3, wl_data_offer.finish
// won't be called, so do this here as a safety net, because // won't be called, so do this here as a safety net, because
// we still want the version >= 3 drag source to be happy. // we still want the version >= 3 drag source to be happy.
if (wl_resource_get_version(offer->resource) < if (wl_resource_get_version(offer->resource) <
WL_DATA_OFFER_ACTION_SINCE_VERSION) { WL_DATA_OFFER_ACTION_SINCE_VERSION) {
data_source_notify_finish(offer->source); data_source_notify_finish(offer->source);
offer->source->offer = NULL;
} else if (offer->source->dnd_finish) { } else if (offer->source->dnd_finish) {
// source->cancel can free the source
offer->source->offer = NULL;
offer->source->cancel(offer->source); offer->source->cancel(offer->source);
} else {
offer->source->offer = NULL;
} }
out: out: