summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorShinwoo Kim <cinoo.kim@samsung.com>2019-02-21 06:57:17 +0000
committerCedric BAIL <cedric.bail@free.fr>2019-02-21 11:12:15 -0800
commit5d651d523bd8d883b76e14953339e1fb80be7021 (patch)
treed852a60b565438c38b64cbfddae418ef9cbd6d5e /src
parente7e62c54cd42bff73469db3340c0b6d10a003813 (diff)
evas_object_image: render_post returns if preloading.
The render_post calls evas_object_change if o->changed is true which is added by commit "36fc2e6 evas image: fix non-rendered preload image.". But an image could lose chance to render. Please refer to the following. (1) 1st render_updates_internal render_post - evas_object_change for image and its parents evas_object_reset - for its parent (2) _evas_image_load_post_update - o->preload is changed to true here (3) 2nd render_updates_internal evas_render_mapped cannot call render The reason of (3) would be unchanged parents. If render_post returns if an image is preloading, then evas_object_change works for the image and its parents at (2). And finally (3) will call render. It would be reasonable because render_pre, and render returns as well. Reviewed-by: Cedric BAIL <cedric.bail@free.fr> Differential Revision: https://phab.enlightenment.org/D7973
Diffstat (limited to 'src')
-rw-r--r--src/lib/evas/canvas/evas_object_image.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/lib/evas/canvas/evas_object_image.c b/src/lib/evas/canvas/evas_object_image.c
index 02ec6493dd..03d37df5a4 100644
--- a/src/lib/evas/canvas/evas_object_image.c
+++ b/src/lib/evas/canvas/evas_object_image.c
@@ -2703,6 +2703,9 @@ evas_object_image_render_post(Evas_Object *eo_obj EINA_UNUSED,
2703 Evas_Image_Data *o = type_private_data; 2703 Evas_Image_Data *o = type_private_data;
2704 Eina_Rectangle *r; 2704 Eina_Rectangle *r;
2705 2705
2706 /* image is not ready yet, skip rendering. Leave it to next frame */
2707 if (o->preload & EVAS_IMAGE_PRELOADING) return;
2708
2706 /* this moves the current data to the previous state parts of the object */ 2709 /* this moves the current data to the previous state parts of the object */
2707 /* in whatever way is safest for the object. also if we don't need object */ 2710 /* in whatever way is safest for the object. also if we don't need object */
2708 /* data anymore we can free it if the object deems this is a good idea */ 2711 /* data anymore we can free it if the object deems this is a good idea */