Hi,<br><br>On Wednesday, 30 September 2015, Carlos Garnacho <<a href="mailto:carlosg@gnome.org">carlosg@gnome.org</a>> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Currently, there's no means for the DnD origin to know whether the<br>
destination is actually finished with the DnD transaction, short of<br>
finalizing it after the first transfer finishes, or leaking it forever.<br>
<br>
But this poses other interoperation problems, drag destinations might<br>
be requesting several mimetypes at once, might be just poking to find<br>
out the most suitable format, might want to defer the action to a popup,<br>
might be poking contents early before the selection was dropped...<br>
<br>
In addition, data_source.cancelled is suitable for the situations where<br>
the DnD operation fails (not on a drop target, no matching mimetypes,<br>
etc..), but seems undocumented for that use (and unused in weston's DnD).<br>
<br>
In order to improve the situation, the drag source should be notified<br>
of all stages of DnD. In addition to documenting the "cancelled" event<br>
for DnD purposes, The following 2 events have been added:<br>
<br>
- wl_data_source.drop_performed: Happens when the operation has been<br>
  physically finished (eg. the button is released), it could be the right<br>
  place to reset the pointer cursor back and undo any other state resulting<br>
  from the initial button press.<br>
- wl_data_source.drag_finished: Happens when the destination side destroys<br>
  the wl_data_offer, at this point the source can just forget all data<br>
  related to the DnD selection as well, plus optionally deleting the data<br>
  on move operations.<br>
<br>
Signed-off-by: Carlos Garnacho <<a href="javascript:;" onclick="_e(event, 'cvml', 'carlosg@gnome.org')">carlosg@gnome.org</a>><span></span></blockquote><div><br></div><div> <font size="2"><span style="background-color:rgba(255,255,255,0)">Mike had a look at this from EFL - CCing him.</span></font></div><div><font size="2"><span style="background-color:rgba(255,255,255,0)"><br></span></font></div><div><font size="2"><span style="background-color:rgba(255,255,255,0)">Cheers,</span></font></div><div><font size="2"><span style="background-color:rgba(255,255,255,0)">Daniel </span></font></div>