diff options
author | Marcel Hollerbach <mail@marcel-hollerbach.de> | 2020-03-08 12:25:35 +0100 |
---|---|---|
committer | Marcel Hollerbach <mail@marcel-hollerbach.de> | 2020-03-08 12:29:41 +0100 |
commit | 0dcbc26a5a974c76d5db5c6c59652f1ae7c4fb9f (patch) | |
tree | be10211fb384d1221db819ae0f2088081bfbce26 | |
parent | b2bd0c548f03b8178e40e0cfa6e9c31c4bff38b1 (diff) | |
download | efl-0dcbc26a5a974c76d5db5c6c59652f1ae7c4fb9f.tar.gz |
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.
-rw-r--r-- | src/modules/ecore_evas/engines/x/ecore_evas_x.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/modules/ecore_evas/engines/x/ecore_evas_x.c b/src/modules/ecore_evas/engines/x/ecore_evas_x.c index 11719ee1b1..e6463fd6a9 100644 --- a/src/modules/ecore_evas/engines/x/ecore_evas_x.c +++ b/src/modules/ecore_evas/engines/x/ecore_evas_x.c @@ -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)); |