ecore_evas_x: honor forign dnd implementations

enlightenment does not use the elm dnd operation implementations.
Therefore we have to ensure that we only handle these operations here,
when ecore_evas dnd API is used.
This commit is contained in:
Marcel Hollerbach 2020-03-08 12:25:35 +01:00
parent b2bd0c548f
commit 0dcbc26a5a
1 changed files with 3 additions and 1 deletions

View File

@ -4133,8 +4133,10 @@ _ecore_evas_x_dnd_drop(void *udata EINA_UNUSED, int type EINA_UNUSED, void *even
edata = ee->engine.data;
if (ee->func.fn_dnd_drop)
ee->func.fn_dnd_drop(ee, 1, ecore_evas_dnd_pos_get(ee, 1), _x11_dnd_action_map(drop->action));
if (!edata->selection_data[ECORE_EVAS_SELECTION_BUFFER_DRAG_AND_DROP_BUFFER].requested_type)
if (edata->selection_data[ECORE_EVAS_SELECTION_BUFFER_DRAG_AND_DROP_BUFFER].delivery &&
!edata->selection_data[ECORE_EVAS_SELECTION_BUFFER_DRAG_AND_DROP_BUFFER].requested_type)
{
//only abort dnd if we have something to deliver here, otherwise some other dnd implementation in our own window is handling that
ecore_x_dnd_send_finished();
}
ecore_evas_dnd_leave(ee, 1, EINA_POSITION2D(drop->position.x ,drop->position.y));