Genlist: Performance optimization for genlist in non-filter cases
authorGodly T.Alias <godlytalias@yahoo.co.in>
Thu, 13 Apr 2017 07:40:28 +0000 (16:40 +0900)
committerCarsten Haitzler (Rasterman) <raster@rasterman.com>
Thu, 13 Apr 2017 07:40:29 +0000 (16:40 +0900)
Summary:
When _item_filtered_get is called, block and pan re-calculations
happen, When there is no filter applied, we can skip item filtering to
avoid some unwanted calculations

Reviewers: cedric, raster, SanghyeonLee

Reviewed By: raster

Subscribers: rajeshps, Princekrdubey, cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D4759

src/lib/elementary/elm_genlist.c

index 6c36251..360bbcb 100644 (file)
@@ -2320,7 +2320,8 @@ _item_block_position(Item_Block *itb, const int blk_idx)
         sd = it->item->wsd;
         if (sd->reorder_it == it) continue;
 
-        if (!it->filtered) _item_filtered_get(it);
+        if (!it->filtered && sd->filter_data && it->itc->func.filter_get)
+          _item_filtered_get(it);
         if (it->hide)
           {
              if (it->realized) evas_object_hide(VIEW(it));