forked from enlightenment/efl
elm_gesture_layer.c: add EVAS_CALLBACK_DEL to the target object. The target object could be deleted before deletion of the gesture layer.
This commit is contained in:
parent
b59ce96e86
commit
5c6b745ea7
|
@ -213,6 +213,8 @@ static void _event_process(void *data,
|
||||||
void *event_info,
|
void *event_info,
|
||||||
Evas_Callback_Type event_type);
|
Evas_Callback_Type event_type);
|
||||||
|
|
||||||
|
static void _callbacks_unregister(Evas_Object *obj);
|
||||||
|
|
||||||
/* Should be the same order as _Elm_Gesture_Type */
|
/* Should be the same order as _Elm_Gesture_Type */
|
||||||
static Tests_Array_Funcs _glayer_tests_array[] = {
|
static Tests_Array_Funcs _glayer_tests_array[] = {
|
||||||
{ NULL, NULL, NULL }, /** Because someone made an awful mistake. */
|
{ 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);
|
_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
|
* @internal
|
||||||
*
|
*
|
||||||
|
@ -985,6 +996,9 @@ _callbacks_register(Evas_Object *obj)
|
||||||
(sd->target, EVAS_CALLBACK_KEY_DOWN, _key_down_cb, obj);
|
(sd->target, EVAS_CALLBACK_KEY_DOWN, _key_down_cb, obj);
|
||||||
evas_object_event_callback_add
|
evas_object_event_callback_add
|
||||||
(sd->target, EVAS_CALLBACK_KEY_UP, _key_up_cb, obj);
|
(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);
|
(sd->target, EVAS_CALLBACK_KEY_DOWN, _key_down_cb, obj);
|
||||||
evas_object_event_callback_del_full
|
evas_object_event_callback_del_full
|
||||||
(sd->target, EVAS_CALLBACK_KEY_UP, _key_up_cb, obj);
|
(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);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue