kimcinoo pushed a commit to branch master.

commit 5086a49f49af916ce782c604bff43cc54b3716f2
Author: Shinwoo Kim <[email protected]>
Date:   Mon Jun 3 20:48:15 2013 +0900

    elm_gesture_layer.c: add EVAS_CALLBACK_DEL to the target object. The target 
object could be deleted before deletion of the gesture layer.
---
 src/lib/elm_gesture_layer.c | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/src/lib/elm_gesture_layer.c b/src/lib/elm_gesture_layer.c
index b2bd87d..94e20fa 100644
--- a/src/lib/elm_gesture_layer.c
+++ b/src/lib/elm_gesture_layer.c
@@ -213,6 +213,8 @@ static void _event_process(void *data,
                            void *event_info,
                            Evas_Callback_Type event_type);
 
+static void _callbacks_unregister(Evas_Object *obj);
+
 /* Should be the same order as _Elm_Gesture_Type */
 static Tests_Array_Funcs _glayer_tests_array[] = {
    { NULL, NULL, NULL },     /** Because someone made an awful mistake. */
@@ -947,6 +949,15 @@ _multi_up_cb(void *data,
    _event_process(data, obj, event_info, EVAS_CALLBACK_MULTI_UP);
 }
 
+static void
+_target_del_cb(void *data,
+               Evas *e __UNUSED__,
+               Evas_Object *obj __UNUSED__,
+               void *event_info __UNUSED__)
+{
+   _callbacks_unregister(data);
+}
+
 /**
  * @internal
  *
@@ -985,6 +996,9 @@ _callbacks_register(Evas_Object *obj)
      (sd->target, EVAS_CALLBACK_KEY_DOWN, _key_down_cb, obj);
    evas_object_event_callback_add
      (sd->target, EVAS_CALLBACK_KEY_UP, _key_up_cb, obj);
+
+   evas_object_event_callback_add
+     (sd->target, EVAS_CALLBACK_DEL, _target_del_cb, obj);
 }
 
 /**
@@ -1026,6 +1040,9 @@ _callbacks_unregister(Evas_Object *obj)
      (sd->target, EVAS_CALLBACK_KEY_DOWN, _key_down_cb, obj);
    evas_object_event_callback_del_full
      (sd->target, EVAS_CALLBACK_KEY_UP, _key_up_cb, obj);
+
+   evas_object_event_callback_del_full
+     (sd->target, EVAS_CALLBACK_DEL, _target_del_cb, obj);
 }
 
 /**

-- 

------------------------------------------------------------------------------
Get 100% visibility into Java/.NET code with AppDynamics Lite
It's a free troubleshooting tool designed for production
Get down to code-level detail for bottlenecks, with <2% overhead.
Download for free and get started troubleshooting in minutes.
http://p.sf.net/sfu/appdyn_d2d_ap2

Reply via email to