elm_gengrid: fix item_show / bring_in deferred call.

Summary:
item_show / bring_in will be deferred, if object is not resized properly.
the deferred call of item_show_region() is on the calc_job(),
after calculating proper object, pan size, but still item is not placed,
so target scrolling position is wrong while item_show_region().

move deferred call to group_calculate() to get correct item position,
after item_place() and group_item_place() were processed.

This patch is reported on [[ https://phab.enlightenment.org/T7367 | T7367 ]].

Test Plan: {F3302967}please check attached gengrid_example_01.c

Reviewers: eagleeye, Hermet

Reviewed By: Hermet

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Maniphest Tasks: T7367

Differential Revision: https://phab.enlightenment.org/D7014
This commit is contained in:
SangHyeon Jade Lee 2018-09-19 09:21:31 +09:00 committed by Hermet Park
parent b5409faf8b
commit 82060c5798
1 changed files with 2 additions and 3 deletions

View File

@ -655,9 +655,6 @@ _calc_job(void *data)
sd->nmax = nmax;
evas_object_smart_changed(sd->pan_obj);
if (sd->show_region || sd->bring_in)
_item_show_region(sd);
}
sd->calc_job = NULL;
}
@ -2232,6 +2229,8 @@ _elm_gengrid_pan_efl_canvas_group_group_calculate(Eo *obj EINA_UNUSED, Elm_Gengr
}
sd->move_effect_enabled = EINA_FALSE;
}
if (sd->show_region || sd->bring_in)
_item_show_region(sd);
efl_event_callback_legacy_call
(psd->wobj, ELM_INTERFACE_SCROLLABLE_EVENT_CHANGED, NULL);