[Bug fix] fix CQ H0100134498 about the Conformant Scroll Issue.
authorJaehwan Kim <jae.hwan.kim@samsung.com>
Fri, 18 Nov 2011 12:12:51 +0000 (21:12 +0900)
committerKim Jaehwan <jae.hwan.kim@samsung.com>
Mon, 21 Nov 2011 09:51:35 +0000 (18:51 +0900)
commitfada0aecbaf27d12cc5608a40b5df1a4cec5a9bd
tree0a287727efb3fcfae7185ce7cf75f20b31ad3f80
parent8fcef5687b1b3fbbd2f309146d14d586c4ad705a
[Bug fix] fix CQ H0100134498 about the Conformant Scroll Issue.

[Reason]
Conformant widget used INVALID(out of date) geometry of a child evas object.

[Solution]
The main point is to use the UPDATED geometry of the child object, but the geometry has yet to be calculated and is queued for calculation later.
Firstly, for efficiency, we add a Job to calculate the whole canvas. Jobs implicitly coallate work per event loop.
Calcuation of object can be a reasonably intensive set of work.
In the job callback we calculate the whole canvas with evas_smart_objects_calculate() to ensure that all objects have the correct geometry at this point.
Reviewed by Raster.

[Change Summary]
<before>
-> Resize genlist in conformant
-> Call elm_widget_show_region_set()
-> Get the evas object's geometry inside the resize event
 (at resize the object does not calculate, instead it queues a calculation to be done at render time for efficiency.)

<After>
-> Resize genlist in conformant
-> Register elm_widget_show_region_set() as an ecore job
-> elm_widget_show_region_set() called by ecore job
-> Call evas_smart_objects_calculate() in order to update geometry before using the geometry in elm_widget_show_region_set()
-> Get the updated geometry

@Raster,
Please review my patch set for fixing this defect.

Change-Id: If56a65968b53af98d540aae6f6d6ef00fb9f4d81
src/lib/elm_conform.c
src/lib/elm_widget.c