wayland: data_device.data_offer now has a safe object wrapper

The prototype for the listener has changed to provide a typesafe object rather
than an id that you have to bind into an object yourself.
This commit is contained in:
Rob Bradford 2012-07-16 13:39:32 +01:00
parent 1d080a01c1
commit 3f0f328fd1

View File

@ -818,23 +818,17 @@ static const struct wl_data_offer_listener data_offer_listener = {
static void static void
data_device_data_offer (void *data, data_device_data_offer (void *data,
struct wl_data_device *data_device, struct wl_data_device *data_device,
uint32_t id) struct wl_data_offer *_offer)
{ {
DataOffer *offer; DataOffer *offer;
g_debug (G_STRLOC ": %s data_device = %p id = %lu",
G_STRFUNC, data_device, (long unsigned int)id);
/* This structure is reference counted to handle the case where you get a /* This structure is reference counted to handle the case where you get a
* leave but are in the middle of transferring data * leave but are in the middle of transferring data
*/ */
offer = g_new0 (DataOffer, 1); offer = g_new0 (DataOffer, 1);
offer->ref_count = 1; offer->ref_count = 1;
offer->types = g_ptr_array_new_with_free_func (g_free); offer->types = g_ptr_array_new_with_free_func (g_free);
offer->offer = (struct wl_data_offer *) offer->offer = _offer;
wl_proxy_create_for_id ((struct wl_proxy *) data_device,
id,
&wl_data_offer_interface);
/* The DataOffer structure is then retrieved later since this sets the user /* The DataOffer structure is then retrieved later since this sets the user
* data. * data.