{
wl_list_remove(&offer->source_destroy_listener.link);
if (offer->source->fd_handler)
- ecore_main_fd_handler_del(offer->source->fd_handler);
+ {
+ ecore_main_fd_handler_del(offer->source->fd_handler);
+ if (offer->fd > 0)
+ {
+ close(offer->fd);
+ offer->fd = 0;
+ }
+ if (offer->source->fd[0] > 0)
+ close(offer->source->fd[0]);
+ }
if (wl_resource_get_version(offer->resource) < WL_DATA_OFFER_ACTION_SINCE_VERSION)
_e_comp_wl_data_source_notify_finish(offer->source);
E_Comp_Wl_Data_Offer *offer;
DBG("Data Offer Source Destroy");
- offer = container_of(listener, E_Comp_Wl_Data_Offer,
+ offer = container_of(listener, E_Comp_Wl_Data_Offer,
source_destroy_listener);
if (!offer) return;
if (offer->source && offer->source->fd_handler)
- ecore_main_fd_handler_del(offer->source->fd_handler);
+ {
+ ecore_main_fd_handler_del(offer->source->fd_handler);
+ if (offer->fd > 0)
+ {
+ close(offer->fd);
+ offer->fd = 0;
+ }
+ if (offer->source->fd[0] > 0)
+ close(offer->source->fd[0]);
+ }
offer->source = NULL;
}