elm: Set timer/animator to NULL after they're deleted.

SVN revision: 69796
This commit is contained in:
Daniel Juyung Seo 2012-03-30 12:31:11 +00:00
parent 76990d020e
commit 91d43ae017
4 changed files with 9 additions and 0 deletions

View File

@ -324,6 +324,7 @@ _event_hook(Evas_Object *obj, Evas_Object *src __UNUSED__, Evas_Callback_Type ty
return EINA_FALSE;
if (wd->spin) ecore_timer_del(wd->spin);
wd->spin = NULL;
/* TODO: if direction setting via API is not coming in, replace
these calls by flip_{next,prev} */
@ -663,6 +664,7 @@ elm_flipselector_flip_next(Evas_Object *obj)
if (!wd) return;
if (wd->spin) ecore_timer_del(wd->spin);
wd->spin = NULL;
_flipselector_walk(wd);
_flip_down(wd);
@ -678,6 +680,7 @@ elm_flipselector_flip_prev(Evas_Object *obj)
if (!wd) return;
if (wd->spin) ecore_timer_del(wd->spin);
wd->spin = NULL;
_flipselector_walk(wd);
_flip_up(wd);

View File

@ -70,6 +70,7 @@ _del_pre_hook(Evas_Object *obj)
elm_widget_item_free(it);
}
if (wd->delay) ecore_timer_del(wd->delay);
wd->delay = NULL;
}
static void

View File

@ -133,7 +133,9 @@ _elm_list_item_free(Elm_List_Item *it)
eina_stringshare_del(it->label);
if (it->swipe_timer) ecore_timer_del(it->swipe_timer);
it->swipe_timer = NULL;
if (it->long_timer) ecore_timer_del(it->long_timer);
it->long_timer = NULL;
if (it->icon) evas_object_del(it->icon);
if (it->end) evas_object_del(it->end);
}

View File

@ -494,6 +494,7 @@ elm_slideshow_item_show(Elm_Object_Item *it)
_end(WIDGET(item), WIDGET(item), NULL, NULL);
if (wd->timer) ecore_timer_del(wd->timer);
wd->timer = NULL;
if (wd->timeout > 0.0)
wd->timer = ecore_timer_add(wd->timeout, _timer_cb, WIDGET(item));
_item_realize(next);
@ -523,6 +524,7 @@ elm_slideshow_next(Evas_Object *obj)
_end(obj, obj, NULL, NULL);
if (wd->timer) ecore_timer_del(wd->timer);
wd->timer = NULL;
if (wd->timeout > 0.0)
wd->timer = ecore_timer_add(wd->timeout, _timer_cb, obj);
@ -556,6 +558,7 @@ elm_slideshow_previous(Evas_Object *obj)
_end(obj, obj, NULL, NULL);
if (wd->timer) ecore_timer_del(wd->timer);
wd->timer = NULL;
if (wd->timeout > 0.0)
wd->timer = ecore_timer_add(wd->timeout, _timer_cb, obj);