From 9427ae26823cd65365a5b56e31cf4101e33ca0d0 Mon Sep 17 00:00:00 2001 From: Carsten Haitzler Date: Fri, 22 Jan 2010 12:02:39 +0000 Subject: [PATCH] move scroll back to event handling - test SVN revision: 45439 --- legacy/elementary/src/lib/elm_genlist.c | 19 ++++++++++++++++++- legacy/elementary/src/lib/els_scroller.c | 5 +++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/legacy/elementary/src/lib/elm_genlist.c b/legacy/elementary/src/lib/elm_genlist.c index 7d8dd0ef27..2594c78d63 100644 --- a/legacy/elementary/src/lib/elm_genlist.c +++ b/legacy/elementary/src/lib/elm_genlist.c @@ -975,6 +975,10 @@ _calc_job(void *data) Item_Block *chb = NULL; int in = 0, minw_change = 0; + double t, t_start; + + t_start = ecore_time_get(); + EINA_INLIST_FOREACH(wd->blocks, itb) { int showme = 0; @@ -1045,6 +1049,9 @@ _calc_job(void *data) } wd->calc_job = NULL; evas_object_smart_changed(wd->pan_smart); + + t = ecore_time_get(); + printf("calc job %1.5f\n", t - t_start); } static void @@ -1596,8 +1603,10 @@ _item_idler(void *data) { Widget_Data *wd = data; int n; + double t_start, t; - for (n = 0; (wd->queue) && (n < 8); n++) + t_start = ecore_time_get(); + for (n = 0; (wd->queue) && (n < 1024); n++) { Elm_Genlist_Item *it; @@ -1605,7 +1614,15 @@ _item_idler(void *data) wd->queue = eina_list_remove_list(wd->queue, wd->queue); it->queued = EINA_FALSE; _item_block_add(wd, it); + t = ecore_time_get(); + // FIXME: call calc job now +// if ((t - t_start) > ecore_animator_frametime_get()) +// { +// printf("abort idler\n"); +// break; +// } } +// printf("%1.5f\n", t - t_start); if (n > 0) { if (wd->calc_job) ecore_job_del(wd->calc_job); diff --git a/legacy/elementary/src/lib/els_scroller.c b/legacy/elementary/src/lib/els_scroller.c index 1080c9553b..a3b1cd2aca 100644 --- a/legacy/elementary/src/lib/els_scroller.c +++ b/legacy/elementary/src/lib/els_scroller.c @@ -1466,6 +1466,7 @@ _smart_onhold_animator(void *data) sd->down.onhold_vxe -= (int)sd->down.onhold_vxe; sd->down.onhold_vye -= (int)sd->down.onhold_vye; elm_smart_scroller_child_pos_set(sd->smart_obj, x, y); +// printf("scroll %i %i\n", sd->down.hold_x, sd->down.hold_y); } sd->down.onhold_tlast = t; return 1; @@ -1556,6 +1557,8 @@ _smart_event_mouse_move(void *data, Evas *e, Evas_Object *obj, void *event_info) sd->down.hold_y = y; if (!sd->down.hold_animator) sd->down.hold_animator = ecore_animator_add(_smart_hold_animator, sd); +// printf("a %i %i\n", sd->down.hold_x, sd->down.hold_y); + _smart_onhold_animator(sd); // elm_smart_scroller_child_pos_set(sd->smart_obj, x, y); } } @@ -1610,6 +1613,8 @@ _smart_event_mouse_move(void *data, Evas *e, Evas_Object *obj, void *event_info) sd->down.onhold_tlast = 0.0; sd->down.onhold_animator = ecore_animator_add(_smart_onhold_animator, sd); } +// printf("b %i %i\n", sd->down.hold_x, sd->down.hold_y); + _smart_onhold_animator(sd); } else {