bu5hm4n pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=f47371330a6d031a7421cb560511767a3a87a625

commit f47371330a6d031a7421cb560511767a3a87a625
Author: Marcel Hollerbach <m...@marcel-hollerbach.de>
Date:   Mon Apr 6 12:37:40 2020 +0200

    efl_ui_dnd: cleanup when backend failed to create dnd op
    
    this is needed to not have a dead window on the screen.
    
    Differential Revision: https://phab.enlightenment.org/D11654
---
 src/lib/elementary/efl_ui_dnd.c | 16 +++++++++++-----
 1 file changed, 11 insertions(+), 5 deletions(-)

diff --git a/src/lib/elementary/efl_ui_dnd.c b/src/lib/elementary/efl_ui_dnd.c
index e8bf19320b..efa0669d99 100644
--- a/src/lib/elementary/efl_ui_dnd.c
+++ b/src/lib/elementary/efl_ui_dnd.c
@@ -49,11 +49,17 @@ _efl_ui_dnd_drag_start(Eo *obj, Efl_Ui_Dnd_Data *pd, 
Eina_Content *content, cons
    elm_win_borderless_set(drag_win, EINA_TRUE);
    drag_ee = ecore_evas_ecore_evas_get(evas_object_evas_get(drag_win));
 
-   ecore_evas_drag_start(pd->ee, seat, content, drag_ee, action, 
_ecore_evas_drag_terminated, start);
-
-   evas_object_show(drag_win);
-
-   efl_event_callback_call(obj, EFL_UI_DND_EVENT_DRAG_STARTED, &ev);
+   if (!ecore_evas_drag_start(pd->ee, seat, content, drag_ee, action, 
_ecore_evas_drag_terminated, start))
+     {
+        efl_del(drag_win);
+        free(start);
+        drag_win = NULL;
+     }
+   else
+     {
+        evas_object_show(drag_win);
+        efl_event_callback_call(obj, EFL_UI_DND_EVENT_DRAG_STARTED, &ev);
+     }
 
    return drag_win;
 }

-- 


Reply via email to