diff options
author | Marcel Hollerbach <mail@marcel-hollerbach.de> | 2020-04-06 12:37:40 +0200 |
---|---|---|
committer | Marcel Hollerbach <mail@marcel-hollerbach.de> | 2020-04-07 10:17:01 +0200 |
commit | 455a4544e80b93fe5c9c8505dc56d0a18bf3ba6e (patch) | |
tree | f335793e4ec487fca22b849c82dab800133f7a82 | |
parent | 697f46fa765286c45f5bbecf6ace6f5d7da8fe63 (diff) | |
download | efl-devs/bu5hm4n/macos-fix.tar.gz |
efl_ui_dnd: cleanup when backend failed to create dnd opdevs/bu5hm4n/macos-fix
this is needed to not have a dead window on the screen.
Differential Revision: https://phab.enlightenment.org/D11654
-rw-r--r-- | src/lib/elementary/efl_ui_dnd.c | 16 |
1 files 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; } |