entrance: delete the timer if the object is deleted
This commit is contained in:
parent
f626cb0a23
commit
f266ddbc6a
|
@ -47,7 +47,6 @@ static Eina_Bool _entrance_tp_login_timer(void *data);
|
||||||
static void _entrance_tp_animation_reset(void *data);
|
static void _entrance_tp_animation_reset(void *data);
|
||||||
static void _entrance_tp_animation_init(Entrance_Theme_Preview *l);
|
static void _entrance_tp_animation_init(Entrance_Theme_Preview *l);
|
||||||
static Evas_Object* _entrance_tp_add(Evas_Object *par, const char *name);
|
static Evas_Object* _entrance_tp_add(Evas_Object *par, const char *name);
|
||||||
static void _entrance_tp_del(Evas_Object *par);
|
|
||||||
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -66,7 +65,7 @@ _entrance_conf_theme_update_preview(const char *name)
|
||||||
|
|
||||||
o = elm_object_part_content_get(_entrance_int_conf_theme->preview, "default");
|
o = elm_object_part_content_get(_entrance_int_conf_theme->preview, "default");
|
||||||
if (o)
|
if (o)
|
||||||
_entrance_tp_del(o);
|
evas_object_del(o);
|
||||||
|
|
||||||
o = _entrance_tp_add(_entrance_int_conf_theme->preview, name);
|
o = _entrance_tp_add(_entrance_int_conf_theme->preview, name);
|
||||||
evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||||
|
@ -79,10 +78,6 @@ _entrance_conf_theme_update_preview(const char *name)
|
||||||
static void
|
static void
|
||||||
_entrance_conf_theme_end(void)
|
_entrance_conf_theme_end(void)
|
||||||
{
|
{
|
||||||
Evas_Object *o;
|
|
||||||
o = elm_object_part_content_get(_entrance_int_conf_theme->preview, "default");
|
|
||||||
if (o)
|
|
||||||
_entrance_tp_del(o);
|
|
||||||
free(_entrance_int_conf_theme);
|
free(_entrance_int_conf_theme);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -398,6 +393,19 @@ bad_end:
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_entrance_tp_del_cb(void *data EINA_UNUSED, Evas *e EINA_UNUSED, Evas_Object *obj, void *event_info EINA_UNUSED)
|
||||||
|
{
|
||||||
|
Entrance_Theme_Preview *pre = evas_object_smart_data_get(obj);
|
||||||
|
String_Animation *ani;
|
||||||
|
|
||||||
|
if ((pre) && (pre->active_timer))
|
||||||
|
{
|
||||||
|
ani = ecore_timer_del(pre->active_timer);
|
||||||
|
free(ani);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static Evas_Object*
|
static Evas_Object*
|
||||||
_entrance_tp_add(Evas_Object *par, const char *name)
|
_entrance_tp_add(Evas_Object *par, const char *name)
|
||||||
{
|
{
|
||||||
|
@ -468,20 +476,9 @@ _entrance_tp_add(Evas_Object *par, const char *name)
|
||||||
|
|
||||||
_entrance_tp_animation_init(pre);
|
_entrance_tp_animation_init(pre);
|
||||||
evas_object_smart_data_set(pre->transition, pre);
|
evas_object_smart_data_set(pre->transition, pre);
|
||||||
|
|
||||||
|
evas_object_event_callback_add(pre->transition, EVAS_CALLBACK_DEL, _entrance_tp_del_cb, NULL);
|
||||||
|
|
||||||
return pre->transition;
|
return pre->transition;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
|
||||||
_entrance_tp_del(Evas_Object *obj)
|
|
||||||
{
|
|
||||||
Entrance_Theme_Preview *pre = evas_object_smart_data_get(obj);
|
|
||||||
String_Animation *ani;
|
|
||||||
|
|
||||||
if ((pre) && pre->active_timer)
|
|
||||||
{
|
|
||||||
ani = ecore_timer_del(pre->active_timer);
|
|
||||||
free(ani);
|
|
||||||
}
|
|
||||||
|
|
||||||
evas_object_del(obj);
|
|
||||||
}
|
|
||||||
|
|
Loading…
Reference in New Issue