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)
      {

-- 


Reply via email to