The reasons the performance is still poor are:
- When the test starts, the whole set of items is realized, then unrealized, then realized again (but only those who are in the viewport)
- Every time the _elm_gengrid_pan_efl_canvas_group_group_calculate is executed, we walk a list of 5000 items, (which also happens multiple times when we scroll)
- The list walk in _elm_gengrid_pan_efl_canvas_group_group_calculate does execute a function which calculates and decides all the decisions that we need for placing a item. It looks like it never really cares about if this is even needed or not.
The problem before was that all the 5000K items have been in the focus manager. Now we are down to only those in the viewport.
sorry for late review.
on the purpose of removing unnecessary order setup, this looks valid patch.
I think still we can find more needless case that can be skipped,
but that is future work to do I think.