efl selection manager - fix dnd end handling to only handle on dnd
authorCarsten Haitzler (Rasterman) <raster@rasterman.com>
Fri, 13 Apr 2018 11:39:07 +0000 (20:39 +0900)
committerWonki Kim <wonki_.kim@samsung.com>
Mon, 28 May 2018 10:26:03 +0000 (19:26 +0900)
dnd end handling was being done even if no dnd started, like an
ungrab. this caused side effects like stoping selections in their
tracks.

@fix

src/lib/elementary/efl_selection_manager.c

index dd87d7d..d487cb2 100644 (file)
@@ -2707,6 +2707,9 @@ _wl_dnd_end(void *data, int type EINA_UNUSED, void *event)
    if (ev->serial != sel->drag_serial)
     return ECORE_CALLBACK_RENEW;
 
+   if (seat_sel->active_type != EFL_SELECTION_TYPE_DND)
+     return ECORE_CALLBACK_RENEW;
+
    efl_event_callback_call(seat_sel->drag_obj, EFL_UI_DND_EVENT_DRAG_DONE, NULL);
    if (seat_sel->drag_win)
      {