From acfadd535b31b319d2d3e73a039b222fb25bd4d6 Mon Sep 17 00:00:00 2001 From: Hannes Janetzek Date: Wed, 16 Mar 2011 09:07:01 +0000 Subject: [PATCH] e17: e_widget_ilist: avoid too much idling SVN revision: 57791 --- src/bin/e_widget_ilist.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/bin/e_widget_ilist.c b/src/bin/e_widget_ilist.c index a0df6f7c6..777d1923c 100644 --- a/src/bin/e_widget_ilist.c +++ b/src/bin/e_widget_ilist.c @@ -71,13 +71,15 @@ static enum _Queue_Command CMD_SHOW } Queue_Command; - + + static Eina_Bool _queue_idler(void *data) { Evas_Object *obj; E_Widget_Data *wd; int num; + double start = ecore_time_get(); obj = data; wd = e_widget_data_get(obj); @@ -194,8 +196,9 @@ _queue_idler(void *data) else if (qi->command == CMD_END_SET) e_ilist_nth_end_set(wd->o_ilist, qi->item, qi->end); _queue_remove(obj, qi, 0); - num++; - if (num >= 10) break; + + if ((num++ >= 10) && (ecore_time_get() - start > 0.01)) + break; } e_widget_ilist_thaw(obj); e_widget_ilist_go(obj);