yakov pushed a commit to branch master. http://git.enlightenment.org/tools/erigo.git/commit/?id=eca881051196e8f9b09e3614cd48a2a6b3e784a3
commit eca881051196e8f9b09e3614cd48a2a6b3e784a3 Author: Yakov Goldberg <yako...@samsung.com> Date: Wed Dec 2 15:47:57 2015 +0200 Leave cb was not correctly called when objtree was left --- src/bin/gui/dnd.c | 35 +++++++++++++++++++---------------- 1 file changed, 19 insertions(+), 16 deletions(-) diff --git a/src/bin/gui/dnd.c b/src/bin/gui/dnd.c index 1eb9dc6..0dd11d6 100644 --- a/src/bin/gui/dnd.c +++ b/src/bin/gui/dnd.c @@ -214,25 +214,28 @@ _dropleave(void *data, Evas_Object *obj) { dnd_debug("In"); _drop_info_global._enter_leave_counter--; - /* data is NULL when entering/leaving objtree. */ - if (!data) return; - Drop_Target_Info *main_wdg_ti = data; - /* if ti->drop_target is not current main widget, then it means, - * that prev drop target, box for example wasn't leaved properly. - * For example moving mouse fast from one window to another will cause "jump". - * So need to call leave properly. - * */ - if (main_wdg_ti->drop_target != main_wdg_ti->wdg) + /* data is NULL when entering/leaving objtree. */ + if (data) { - Drop_Target_Info *ti = wdg_data_get(main_wdg_ti->drop_target, DROP_TARGET); - if (ti->drop_target_leave) - ti->drop_target_leave(ti->leavedata, obj); - } - main_wdg_ti->drop_target = NULL; + Drop_Target_Info *main_wdg_ti = data; + + /* if ti->drop_target is not current main widget, then it means, + * that prev drop target, box for example wasn't leaved properly. + * For example moving mouse fast from one window to another will cause "jump". + * So need to call leave properly. + * */ + if (main_wdg_ti->drop_target != main_wdg_ti->wdg) + { + Drop_Target_Info *ti = wdg_data_get(main_wdg_ti->drop_target, DROP_TARGET); + if (ti->drop_target_leave) + ti->drop_target_leave(ti->leavedata, obj); + } + main_wdg_ti->drop_target = NULL; - if (main_wdg_ti->drop_target_leave) - main_wdg_ti->drop_target_leave(main_wdg_ti->leavedata, obj); + if (main_wdg_ti->drop_target_leave) + main_wdg_ti->drop_target_leave(main_wdg_ti->leavedata, obj); + } if (!_drop_info_global._enter_leave_counter) { --