From: Shinwoo Kim Date: Mon, 3 Jun 2013 12:27:27 +0000 (+0900) Subject: elm_gesture_layer.c: add EVAS_CALLBACK_DEL to the target object. The target object... X-Git-Tag: accepted/tizen/20130927.071315^2~246 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=c49e8f788d9d0faca4388a7dcf4e949388f39586;p=profile%2Fmobile%2Felementary.git elm_gesture_layer.c: add EVAS_CALLBACK_DEL to the target object. The target object could be deleted before deletion of the gesture layer Change-Id: Ifc29d0dd6b8de748da61238d326ced0c7b366e26 --- diff --git a/src/lib/elm_gesture_layer.c b/src/lib/elm_gesture_layer.c index dbdbabf..a247cdf 100644 --- a/src/lib/elm_gesture_layer.c +++ b/src/lib/elm_gesture_layer.c @@ -210,6 +210,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. */ @@ -948,6 +950,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 * @@ -986,6 +997,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); } /** @@ -1027,6 +1041,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); } /**