summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcel Hollerbach <mail@marcel-hollerbach.de>2020-03-08 12:25:35 +0100
committerMarcel Hollerbach <mail@marcel-hollerbach.de>2020-03-08 12:29:41 +0100
commit0dcbc26a5a974c76d5db5c6c59652f1ae7c4fb9f (patch)
treebe10211fb384d1221db819ae0f2088081bfbce26
parentb2bd0c548f03b8178e40e0cfa6e9c31c4bff38b1 (diff)
downloadefl-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.c4
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));