From 0777b74f07857c86408bc0929e3391ced0e098e4 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Mon, 21 Oct 2019 16:03:56 -0400 Subject: [PATCH] elm/genlist: don't process entire item queue on each item add this is a colossal waste of time. it ends up realizing every single item immediately even if it won't be visible, which defeats the purpose of all the batching and viewport calculations that genlist explicitly does to avoid exactly this type of behavior Reviewed-by: Cedric BAIL Differential Revision: https://phab.enlightenment.org/D10522 --- src/lib/elementary/elm_genlist.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/lib/elementary/elm_genlist.c b/src/lib/elementary/elm_genlist.c index da34e8ba3a..a1da165df3 100644 --- a/src/lib/elementary/elm_genlist.c +++ b/src/lib/elementary/elm_genlist.c @@ -4928,6 +4928,7 @@ _item_queue(Elm_Genlist_Data *sd, // FIXME: why does a freeze then thaw here cause some genlist // elm_genlist_item_append() to be much much slower? // evas_event_freeze(evas_object_evas_get(sd->obj)); +/* while ((sd->queue) && ((!sd->blocks) || (!sd->blocks->next))) { ELM_SAFE_FREE(sd->queue_idle_enterer, ecore_idle_enterer_del); @@ -4939,7 +4940,7 @@ _item_queue(Elm_Genlist_Data *sd, ELM_SAFE_FREE(sd->queue_idle_enterer, ecore_idle_enterer_del); _queue_process(sd); } - +*/ // evas_event_thaw(evas_object_evas_get(sd->obj)); // evas_event_thaw_eval(evas_object_evas_get(sd->obj)); evas_object_geometry_get(sd->obj, NULL, NULL, &w, NULL);