From b2388f588110b17d7b91e61c408f37709f404666 Mon Sep 17 00:00:00 2001 From: Hermet Park Date: Mon, 5 Dec 2016 17:33:15 +0900 Subject: [PATCH] cherrypick from upstream. http://git.enlightenment.org/core/efl.git/commit/?id=1e6246df24f84eebda95c9d18f90ead3f803789e commit 1e6246df24f84eebda95c9d18f90ead3f803789e Author: Hermet Park Date: Mon Dec 5 18:03:01 2016 +0900 evas textblock: fix a rendering issue. It's a rare case but a possible scenario that textblock is not updated properly in case of textblock rendering via proxy/map. If the textblock state turned out with an invisible state, its relayouting won't be up to date. But actually, it could be rendered by map/proxy. In that case textblock text layouting would be incorrect. Additionally, removed evas event freeze state there because map/proxy won't be drawn under the event freeze state always. @fix Change-Id: I588d3fa73e6b83b916e73bd9b993f5f5f782e1ff --- src/lib/evas/canvas/evas_object_textblock.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/lib/evas/canvas/evas_object_textblock.c b/src/lib/evas/canvas/evas_object_textblock.c index e94c859..3e668d3 100644 --- a/src/lib/evas/canvas/evas_object_textblock.c +++ b/src/lib/evas/canvas/evas_object_textblock.c @@ -12926,11 +12926,12 @@ evas_object_textblock_render(Evas_Object *eo_obj EINA_UNUSED, {0, 1, 2, 1, 0} }; - /* [FIXME!!!] rare case when relayout was not called: cache.clip made - * the object not visible (eg. clipped out), but it is actually visible - * in this context (eg. inside a proxy) - UGLY DIRTY FIX */ - if (obj->layer->evas->is_frozen && - (o->changed || o->content_changed || o->format_changed || o->obstacle_changed)) + /* FIXME: rare case when relayout was not called: cache.clip made + the object not visible (eg. clipped out), but it is actually visible + in this context (eg. inside a proxy). + Plus, one more scenario is that the object isn't visible but actually is visible + by evas_map. */ + if (o->changed || o->content_changed || o->format_changed || o->obstacle_changed) _relayout_if_needed(eo_obj, o); /* If there are no paragraphs and thus there are no lines, -- 2.7.4