efl_ui_position_manager_list: error when we detect that sizes are wrong

when sizes are different to the cached size, then the displayed items
are out of order, or do not fill the whole viewport. This should not
happen. In case that this is detected, print an error.

Co-authored-by: Mike Blumenkrantz <zmike@samsung.com>

Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D9821
This commit is contained in:
Marcel Hollerbach 2019-09-03 10:21:38 +02:00
parent 1d96fc9202
commit 4617e5dcfb
1 changed files with 9 additions and 0 deletions

View File

@ -210,6 +210,15 @@ _position_items(Eo *obj EINA_UNUSED, Efl_Ui_Position_Manager_List_Data *pd, Vis_
size = size_buffer[buffer_id].size;
ent = obj_buffer[buffer_id].entity;
int diff = cache_access(obj, pd, i + 1) - cache_access(obj, pd, i);
int real_diff = 0;
if (pd->dir == EFL_UI_LAYOUT_ORIENTATION_VERTICAL)
real_diff = size.h;
else
real_diff = size.w;
if (real_diff != diff)
ERR("Reported sizes changed during caching and placement %d %d %d", i, real_diff, diff);
if (ent == pd->last_group)
{
pd->last_group = NULL;