the scrolbars have been displayed wrongly before. Reason for this is
that the theme displays the bars per default, the code however works
with hidden by default. This was worked arround before with the fact
that we are explicitly hiding the vbar/hbar before.
The reason this previous code was not working proberly is that entry
decided to retheme a object that was already set to the interface
scrollable object. Which means, it was not detected by the code. With
the newly introduced reset function you can tell the interface, that you
have changed the group, signals will be emitted accordingly.
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10622
Efl.Model can be nested and Efl.Ui.CollectionView use this ability. Listening
on the nested model instead of the nester model can lead to event being triggered
that shouldn't. Better listen on the top model.
Differential Revision: https://phab.enlightenment.org/D10621
EINA_FALSE is to be returned only if one of the callback did call
efl_event_callback_stop not if their was no callback called.
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10620
This fix adding item not always showing up in the CollectionView right away.
The main issue comes down to the fact we can not chain a new request when one
is already resolved partially. The code now make sure to properly do this.
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10614
This reverts commit 2f676a6591.
This causes segv's in edje_cc - i suspect the eet changes (or in combo
to how they are used in edje):
AddressSanitizer:DEADLYSIGNAL
=================================================================
==8991==ERROR: AddressSanitizer: SEGV on unknown address 0x000001010000 (pc 0xffff9f002604 bp 0xfffffa747700 sp 0xfffffa747700 T0)
==8991==The signal is caused by a READ memory access.
#0 0xffff9f002600 in _eet_hash_gen ../src/lib/eet/eet_utils.c:25
#1 0xffff9efdd024 in eet_dictionary_string_add ../src/lib/eet/eet_dictionary.c:103
#2 0xffff9efbe324 in eet_data_put_string ../src/lib/eet/eet_data.c:849
#3 0xffff9efc1c4c in eet_data_put_type ../src/lib/eet/eet_data.c:1427
#4 0xffff9efd9128 in eet_data_put_unknown ../src/lib/eet/eet_data.c:4730
#5 0xffff9efdb320 in _eet_data_descriptor_encode ../src/lib/eet/eet_data.c:5108
#6 0xffff9efd5958 in eet_data_put_variant ../src/lib/eet/eet_data.c:4309
#7 0xffff9efdb320 in _eet_data_descriptor_encode ../src/lib/eet/eet_data.c:5108
#8 0xffff9efd9270 in eet_data_put_unknown ../src/lib/eet/eet_data.c:4739
#9 0xffff9efdb320 in _eet_data_descriptor_encode ../src/lib/eet/eet_data.c:5108
#10 0xffff9efd8ca0 in eet_data_put_array ../src/lib/eet/eet_data.c:4692
#11 0xffff9efdb320 in _eet_data_descriptor_encode ../src/lib/eet/eet_data.c:5108
#12 0xffff9efc7768 in eet_data_write_cipher ../src/lib/eet/eet_data.c:2403
#13 0xffff9efc78a4 in eet_data_write ../src/lib/eet/eet_data.c:2420
#14 0xaaaabb151dcc in data_thread_group ../src/bin/edje/edje_cc_out.c:2045
#15 0xaaaabb152130 in data_write_groups ../src/bin/edje/edje_cc_out.c:2086
#16 0xaaaabb157734 in data_write ../src/bin/edje/edje_cc_out.c:2866
#17 0xaaaabb14122c in main ../src/bin/edje/edje_cc.c:456
#18 0xffff9dbd92a0 in __libc_start_main (/usr/lib/aarch64-linux-gnu/libc.so.6+0x242a0)
#19 0xaaaabb13ea00 (/home/raster/C/git/efl/build/src/bin/edje/edje_cc+0x38a00)
AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: SEGV ../src/lib/eet/eet_utils.c:25 in _eet_hash_gen
==8991==ABORTING
Aborted (core dumped)
When compiling breaks... it's certainly time to revert ASAP :(
Summary:
Instead of a getter with an explicit return type, change it to be a
single-valued property.
The eolian C generator takes care of making this single value the actual
return value of the C function.
This also makes these properties able to be reflected on.
The stack properties returns just a pointer and not a new ref, so no
@move needed.
Beta properties will be handled in a future commit.
Depends on D10601
Reviewers: segfaultxavi, bu5hm4n, q66, cedric
Reviewed By: segfaultxavi
Subscribers: #reviewers, #committers, brunobelo, felipealmeida
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10602
ecore_file_cp can cause config data(eet file) invalid,
once multiple processes are trying to call elm_config_save.
this patch replaces it with ecore_file_mv to prevent the problem.
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10578
It should takes true almost all times when it checks.
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10606
efl_ui_position_manager_entity_entities_ready is expecting the end offset and not the
length of how many items have been updated. Sending the correct number fixes the problem.
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Reviewed-by: SangHyeon Jade Lee <sh10233.lee@samsung.com>
Differential Revision: https://phab.enlightenment.org/D10590
Summary:
OK, so, ALL interpolator parameters were called "factor" and the docs
literally said "First factor, Second factor, ..."
After diving into the actual implementation, proper names (and types) for the
parameters were found and proper docs written.
I am afraid I could not make any sense of the Divisor interpolator code. Those
docs still need writing.
Test Plan: Everything still builds and passes tests. No functional changes.
Reviewers: zmike, cedric, bu5hm4n, Jaehyun_Cho
Reviewed By: bu5hm4n
Subscribers: #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10603
Summary:
in case of setting a state of check by calling a API,
the flags that used for changed cb aren't changed.
which causes that the callback not invoked when it should be.
this patch resets the flags to make it work properly.
Reviewers: bu5hm4n
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10591
Summary:
This makes sure the user is warned if it ignores a return value that
could potentially be a memory leak.
This also makes possible to use `value {}` blocks with `@move` instead
of value-less properties with `@no_unused`.
Also removed the `@move` from canvas_text_async_layout as it is ignored
in the only place it is used.
Reviewers: q66
Reviewed By: q66
Subscribers: #reviewers, #committers, bu5hm4n, felipealmeida, cedric, segfaultxavi
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10601
As this function is only used in 1 place and will likely never be used
outside of the modular dmabuf engine, we can move it to be internal
only.
ref T8013
As this function is only used in 1 place and will likely never be used
outside of the modular dmabuf engine, we can move it to be internal
only.
ref T8013
As this function is only used in 1 place and will likely never be used
outside of the modular dmabuf engine, we can move it to be internal
only.
ref T8013
As this function is only used in 1 place and will likely never be used
outside of the modular dmabuf engine, we can move it to be internal
only.
ref T8013
As this function is only used in 1 place and will likely never be used
outside of the modular dmabuf engine, we can move it to be internal
only.
ref T8013
As this function is only used in 1 place and will likely never be used
outside of the modular dmabuf engine, we can move it to be internal
only.
ref T8013
As this function is only used in 1 place and will likely never be used
outside of the modular dmabuf engine, we can move it to be internal
only.
ref T8013
As this function is only used in 1 place and will likely never be used
outside of the modular dmabuf engine, we can move it to be internal
only.
ref T8013
As this function is only used in 1 place and will likely never be used
outside of the modular dmabuf engine, we can move it to be internal
only.
ref T8013
As this function is only used in 1 place and will likely never be used
outside of the modular dmabuf engine, we can move it to be internal
only.
ref T8013
As this function is only used in 1 place and will likely never be used
outside of the modular dmabuf engine, we can move it to be internal
only.
ref T8013
As this function is only used in 1 place and will likely never be used
outside of the modular dmabuf engine, we can move it to be internal
only.
ref T8013
As this function is only used in 1 place and will likely never be used
outside of the modular dmabuf engine, we can move it to be internal
only.
ref T8013
As this function is only used in 1 place and will likely never be used
outside of the modular dmabuf engine, we can move it to be internal
only.
ref T8013
As this function is only used in 1 place and will likely never be used
outside of the modular dmabuf engine, we can move it to be internal
only.
ref T8013
As this function is only used in 1 place and will likely never be used
outside of the modular dmabuf engine, we can move it to be internal
only.
ref T8013
As this function is only used in 1 place and will likely never be used
outside of the modular dmabuf engine, we can move it to be internal
only.
ref T8013
As this function is only used in 1 place and will likely never be used
outside of the modular dmabuf engine, we can move it to be internal
only.
ref T8013
As this function is only used in 1 place and will likely never be used
outside of the modular dmabuf engine, we can move it to be internal
only.
ref T8013
As this function is only used in 1 place and will likely never be used
outside of the modular dmabuf engine, we can move it to be internal
only.
ref T8013
As this function is only used in 1 place and will likely never be used
outside of the modular dmabuf engine, we can move it to be internal
only.
ref T8013
As this function is only used in 1 place and will likely never be used
outside of the modular dmabuf engine, we can move it to be internal
only.
ref T8013
As this function is only used in 1 place and will likely never be used
outside of the modular dmabuf engine, we can move it to be internal
only.
ref T8013
As this function is only used in 1 place and will likely never be used
outside of the modular dmabuf engine, we can move it to be internal
only.
ref T8013
As this function is only used in 1 place and will likely never be used
outside of the modular dmabuf engine, we can move it to be internal
only.
ref T8013
As this function is only used in 1 place and will likely never be used
outside of the modular dmabuf engine, we can move it to be internal
only.
ref T8013
As this function is only used in 1 place and will likely never be used
outside of the modular dmabuf engine, we can move it to be internal
only.
ref T8013
As this function is only used in 1 place and will likely never be used
outside of the modular dmabuf engine, we can move it to be internal
only.
ref T8013
As this function is only used in 1 place and will likely never be used
outside of the modular dmabuf engine, we can move it to be internal
only.
ref T8013
Summary: This is the first version of inverse color filter both GL and SW.
Test Plan:
1. Create filter_example with following .
efl_gfx_filter_program_set(image, "inverse_color ()", "inverse color");
2. Run.
./filter_example (Use ELM_ACCEL=gl for GL engine)
Reviewers: Hermet, jsuya
Reviewed By: Hermet
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10335
Summary:
to be taken over by doccop
Depends on D10559
Reviewers: Jaehyun_Cho, bu5hm4n
Reviewed By: bu5hm4n
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10560
Summary:
These docs were lacking a lot of detail.
Depends on D10562
Reviewers: bu5hm4n, cedric, zmike, Jaehyun_Cho
Reviewed By: cedric
Subscribers: #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10565
Summary:
with this the passing of positions is getting more easy. Additionally,
Reading the API call gets easier, as parameters are semantically
grouped.
Depends on D10558
Reviewers: segfaultxavi, Jaehyun_Cho
Reviewed By: segfaultxavi
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Maniphest Tasks: T8288
Differential Revision: https://phab.enlightenment.org/D10559
Summary:
with this commit invalid values are not accepted silently anymore. But
rather a error will be raised.
Depends on D10350
Reviewers: segfaultxavi, Jaehyun_Cho
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Maniphest Tasks: T8288
Differential Revision: https://phab.enlightenment.org/D10558
Summary:
in task T8288 we concluded that a few APIs need to be adjusted in order
to stabelize animation classes at some point. This also adds a new macro
to eina in order to create EINA_VECTOR2 values more easily.
ref T8288
Reviewers: Jaehyun_Cho, segfaultxavi, zmike
Reviewed By: zmike
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Maniphest Tasks: T8288
Differential Revision: https://phab.enlightenment.org/D10350
First - the big problem. This breaks enlightenment's bluez5 popup. it
does a sortyed inert using the item data and the item data for one of
the itmes to compare in _cb_insert_cmp() in e_mod_popup.c when it
calls elm_object_item_data_get(0 returns a junk ptr for the item data
after this patch. i haven't managed to figure out exactly why in my
last 30 mins of looking.
But a closer look... this disables immediate processing of:
1. the first block of items (32items) which was intended so for
short/small lists you have some content by the time you go to the
first frame, and at least the first block of itso you seem to have
visual contnt and not a blank list until idlers can process further
content. so the patch being reverted would have gotten rid of this
logic that gets you content as opposed to blank:
while ((sd->queue) && ((!sd->blocks) || (!sd->blocks->next)))
2. if it's a homogenous list, all items have the same size so we do
have to realize the first item of each class type but ONLY that one.
further items should not need realizing as we can ASSUME the height to
be the same as the first item... that's the point of homogenous +
compress lists - all items of the same class have the same height and
width thus shortcutting further need to calculate nd realize. if we
are reizing everything in a homogenous list then the issue lies with
something going wrong with this above logic. we shokuld be able to
handle such lists super fastif this logic was working.
that's the 2nd while:
while ((sd->queue) && (sd->blocks) &&
(sd->homogeneous) && (sd->mode == ELM_LIST_COMPRESS))
so overall, this should not have been realizing every item. either
just the first block of 32, OR just the first item of any class and
thus assume all further items are the same size without realizing
being needed. if these broke then the solution is not commenting this
out but finding out why this logic is breaking :)
and not to mention... this commenting out also caused segfaults in
existing applications which are doing the right thing. perhaps the
sorting logic also needed updating as well if this above is commented out...
but i didn't have time to chase it more than this.
---
This reverts commit 0777b74f07.
Summary:
This specific EFL_EVENT_DEL handler was registered thousand of time alone on
an Evas device. Potential solution are to improve handling of this kind of large
scale callback logic or just not take that path. I find it easier to have a custom
code in this case to handle the destruction of Evas device and avoid this
thousand of callback.
Depends on D10492
Reviewers: zmike, raster, bu5hm4n, Hermet
Reviewed By: zmike
Subscribers: #reviewers, #committers
Tags: #efl
Maniphest Tasks: T8321
Differential Revision: https://phab.enlightenment.org/D10493
Summary:
It is unlikely that the code was working before and it was a bad idea
anyway. There is no user of this API in EFL.
Depends on D10490
Reviewers: zmike, raster, bu5hm4n, Hermet
Reviewed By: zmike
Subscribers: #reviewers, #committers
Tags: #efl
Maniphest Tasks: T8321
Differential Revision: https://phab.enlightenment.org/D10491
Summary:
The internal and the API we would like is mostly a canvas API. A lot of the code
in evas is working around the fact that efl_input_device is not defined inside Evas.
This patch is the first step to try to clean this up.
Depends on D10487
Reviewers: zmike, raster, bu5hm4n, Hermet
Reviewed By: zmike
Subscribers: #reviewers, #committers
Tags: #efl
Maniphest Tasks: T8321
Differential Revision: https://phab.enlightenment.org/D10488
Summary:
this cannot be evalulated in compile time, so this must be evalulated in
runtime, at the first call.
This should fix OSX build.
Co-authored-by: Cedric Bail <cedric.bail@free.fr>
Reviewers: zmike, cedric, raster
Reviewed By: zmike
Subscribers: #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10582
This leverage the new infrastructure from Eo that provide a scheduler for any event
attached to any object.
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10481
This avoid comparison with potentially uninitialized byte.
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D10479
As we do not rely on legacy Ecore Event directly anymore, we do not
need to mind the shutting down of EFL.
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10477
This patch introduce a small hash (64 or 32bits) that cache all existing
Efl_Event_Description callback handler registered on an object. It slightly
reduce the time needed to do an unecessary call and cost just a few bytes
per object.
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10475
Summary:
ECORE_X_EVENT_FIXES_SELECTION_NOTIFY is only initialized when XFIXES
is available. If ecore_event_handler_add is called with type == 0, it
will trigger an abort and elementary would not initialize properly.
Depends on D10491
Reviewers: zmike, raster, bu5hm4n, Hermet
Reviewed By: zmike
Subscribers: #reviewers, #committers
Tags: #efl
Maniphest Tasks: T8321
Differential Revision: https://phab.enlightenment.org/D10492
Summary:
This reduce in elementary_test the number of callback registered on the
canvas from hundreds to around 10.
Depends on D10486
Reviewers: zmike, raster, bu5hm4n, Hermet
Reviewed By: zmike
Subscribers: #reviewers, #committers
Tags: #efl
Maniphest Tasks: T8321
Differential Revision: https://phab.enlightenment.org/D10487
Summary:
This reduce by 3 the amount of callback registered on the canvas. Another
potential improvement would be to only register those callback if someone
is listening for a 'seat,*' event or if the edje file define seat filters.
Depends on D10484
Reviewers: zmike, raster, bu5hm4n, Hermet
Reviewed By: zmike
Subscribers: #reviewers, #committers
Tags: #efl
Maniphest Tasks: T8321
Differential Revision: https://phab.enlightenment.org/D10486
This code is filled with out of bounds accesses now after the reverted
patch. All those base_char+1, itr+1 etc. in
evas_common_font_query_run_font_end_get() are accessing BEYOND
the end of the run. textgrid shows this instantly to fall over as it
uses single unicode codepoint chars with no nul terminator. As this
api takes an explicit run_len we should never access beyond the end of
the run_len.
Please revisit this code and keep in mind proper memory/bounds
accessing. If there was ano run_len and it assumed strings were
regular strings that had to be nul terminated... then it might be ok,
but not here.
of course if i put in guards for these +1's then it ends up in
infintie loops, so enough debugging and send it back for a rethink. :)
....
Revert "evas_object_textblock: add support for variation sequences"
This reverts commit 46f2d8acdc.
if a legacy timer callback returns false, the timer is deleted. in the
case where the legacy timer is deleted inside the callback while the same
timer is ticking recursively, however, the deletion must be deferred until
the outer-most frame of the timer's callstack has returned from the callback
in order to avoid improperly handling the timer
@fix
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10545
no need to strcpy here when we can just pass the length to stringshare directly
CID 1382854
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10441
this cannot currently be used for anything and was not explicitly stabilized
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10540
this cannot be used for anything and serves no purpose
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10539
The idea is to improve memory locality and hopefully get better cache hit
in general.
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D10536
Summary: these should error so the user can detect that they screwed up
Reviewers: devilhorns
Reviewed By: devilhorns
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10563
Summary:
I'm tired of typing all this out. it's exhausting.
also add a couple usages internally to verify that this works as expected
@feature
Reviewers: cedric, bu5hm4n, devilhorns
Reviewed By: devilhorns
Subscribers: devilhorns, bu5hm4n, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10557
Summary:
this makes the types more explicit
Depends on D10554
Reviewers: segfaultxavi
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10555
Summary:
this can be used to more explicitly specify that a double is intended to
be a value of 0.0 to 1.0 for the purpose of aligning objects. it also avoids
the need to copy and paste the same docs around everywhere
Reviewers: segfaultxavi
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10554
Summary:
before recent times we had to support static and shared building based
on the options of the user, which forced us to complicate our build with
the evas_goal hack. the evas_goal hack more or less was the idea of
"faking" the evas build in the evas directory, finish all the .eo
generation there, then build the modules and make all the static files
ready. Then build everything in evas_goal.
Now, that we just build everything the same always, we can simply build
it in the evas way (removing the evas_goal hack FINALLY), as the same modules
are build statically and shared.
This also gives us the possibility to build the shared image loaders
*again* the the modules directory, which unbreaks peoples build scripts
who packaged loader files seperatly.
Reviewers: zmike, raster, cedric, stefan_schmidt
Reviewed By: zmike
Subscribers: #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10548
if the block is realized, its items have been registered into the focus
manager and must be unregistered to avoid double-registering
@fix
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10544
cached item contents should already be hidden by the edje clipper, so this simply
changes their visible state to break them out of the focus calcs
contents must also be explicitly marked as unfocusable during calc-only realize
operations in order to avoid triggering a full focus recalc which will error due
to missing focus adapter in the item block
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10543
item move operations require pan recalc in order to process the item block
positioning updates
@fix
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10533
this is only a smart callback and not an eo callback
@fix
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10527
the documentation says this should trigger when filtering is done, and if
no filtering is pending then it is done
@fix
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10526
passing the smart data here (which we always have) makes the function
a little clearer to read. similarly, we can check whether the filter_data
pointer is set inside the function to avoid having to check it everywhere else
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10525
this may be called successively during the same mainloop iteration,
so it's important to defer this as much as possible
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10524
now that we have a sane and consistent sizing calc mechanism, we no longer
need to be randomly creating jobs to do additional side calcs in addition
to our other multiple bespoke calculation methods
instead, we can now call the calc function directly during the group calc
to perform all the calcs at once and avoid the overhead of constantly triggering
calc jobs
a possible future improvement here could be to remove the _calc_job() call in
the internal pan object's group_calculate, as this is likely a duplicated op
but it will require additional testing to verify
unit test performance (e.g., tree) increases roughly 50-80% after this patch
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10523
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 <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10522