jackdanielz pushed a commit to branch master.

commit 3fe22f3e4d8886ccacd933ebcaae5ddd8509c99f
Author: Aharon Hillel <[email protected]>
Date:   Mon Jul 1 18:45:06 2013 +0300

    Gesture Layer: changed order in cleanup func.
    
    Changed the order when GLayer is deleted. First we cancel all Gestures,
    then we handle any event forwarding.
---
 src/lib/elm_gesture_layer.c | 23 +++++++++++++----------
 1 file changed, 13 insertions(+), 10 deletions(-)

diff --git a/src/lib/elm_gesture_layer.c b/src/lib/elm_gesture_layer.c
index 0ae0f18..ed21767 100644
--- a/src/lib/elm_gesture_layer.c
+++ b/src/lib/elm_gesture_layer.c
@@ -3719,16 +3719,7 @@ _elm_gesture_layer_smart_del(Eo *obj, void *_pd, va_list 
*list EINA_UNUSED)
    Pointer_Event *data;
    int i;
 
-   _event_history_clear(obj);
-   sd->pending = eina_list_free(sd->pending);
-
-   EINA_LIST_FREE(sd->touched, data)
-     free(data);
-
-   if (!elm_widget_disabled_get(obj))
-     _callbacks_unregister(obj);
-
-   /* Free all gestures internal data structures */
+   /* First Free all gestures internal data structures */
    for (i = 0; i < ELM_GESTURE_LAST; i++)
      if (sd->gesture[i])
        {
@@ -3740,9 +3731,21 @@ _elm_gesture_layer_smart_del(Eo *obj, void *_pd, va_list 
*list EINA_UNUSED)
           _cbs_clean(sd, i, ELM_GESTURE_STATE_END);
           _cbs_clean(sd, i, ELM_GESTURE_STATE_ABORT);
           free(sd->gesture[i]);
+          sd->gesture[i] = NULL; /* Referenced by _event_history_clear */
        }
    if (sd->gest_taps_timeout) ecore_timer_del(sd->gest_taps_timeout);
 
+   /* Then take care of clearing events */
+   _event_history_clear(obj);
+   sd->pending = eina_list_free(sd->pending);
+
+   EINA_LIST_FREE(sd->touched, data)
+     free(data);
+
+   if (!elm_widget_disabled_get(obj))
+     _callbacks_unregister(obj);
+
+
    eo_do_super(obj, MY_CLASS, evas_obj_smart_del());
 }
 

-- 

------------------------------------------------------------------------------
This SF.net email is sponsored by Windows:

Build for Windows Store.

http://p.sf.net/sfu/windows-dev2dev

Reply via email to