{
Elm_Genlist_Smart_Data *sd = data;
- if (sd->scrolling) return ECORE_CALLBACK_RENEW;
if (sd->prev_viewport_w == 0) return ECORE_CALLBACK_RENEW;
if (_queue_process(sd) > 0)
{
#if GENLIST_FX_SUPPORT
_elm_genlist_fx_clear(obj, EINA_FALSE);
#endif
- sd->scrolling = EINA_TRUE;
+ if (sd->queue_idle_enterer)
+ {
+ ecore_idle_enterer_del(sd->queue_idle_enterer);
+ sd->queue_idle_enterer = NULL;
+ }
evas_object_smart_callback_call(obj, SIG_SCROLL_ANIM_START, NULL);
}
#if GENLIST_FX_SUPPORT
_elm_genlist_fx_clear(obj, EINA_FALSE);
#endif
- sd->scrolling = EINA_FALSE;
+ if (!sd->queue_idle_enterer)
+ sd->queue_idle_enterer = ecore_idle_enterer_add(_item_idle_enterer, sd);
evas_object_smart_callback_call(obj, SIG_SCROLL_ANIM_STOP, NULL);
}
_scroll_drag_start_cb(Evas_Object *obj,
void *data __UNUSED__)
{
- ELM_GENLIST_DATA_GET(obj, sd);
- sd->scrolling = EINA_TRUE;
evas_object_smart_callback_call(obj, SIG_SCROLL_DRAG_START, NULL);
}
_scroll_cb(Evas_Object *obj,
void *data __UNUSED__)
{
+ ELM_GENLIST_DATA_GET(obj, sd);
+ if (sd->queue_idle_enterer)
+ ecore_idle_enterer_del(sd->queue_idle_enterer);
+ sd->queue_idle_enterer = NULL;
evas_object_smart_callback_call(obj, SIG_SCROLL, NULL);
}
_scroll_drag_stop_cb(Evas_Object *obj,
void *data __UNUSED__)
{
- ELM_GENLIST_DATA_GET(obj, sd);
- sd->scrolling = EINA_FALSE;
evas_object_smart_callback_call(obj, SIG_SCROLL_DRAG_STOP, NULL);
}