diff options
author | Hermet Park <hermet@hermet.pe.kr> | 2016-12-05 18:03:01 +0900 |
---|---|---|
committer | Hermet Park <hermet@hermet.pe.kr> | 2016-12-05 18:07:39 +0900 |
commit | 1e6246df24f84eebda95c9d18f90ead3f803789e (patch) | |
tree | 3d838d8b02b9658af048a8d0f1b91700caac09d2 | |
parent | c6dcf3dda448c422bd556834b336f7fdb9296097 (diff) | |
download | efl-1e6246df24f84eebda95c9d18f90ead3f803789e.tar.gz |
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
-rw-r--r-- | src/lib/evas/canvas/evas_object_textblock.c | 11 |
1 files 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 6451d7ba02..d251ce4b4f 100644 --- a/src/lib/evas/canvas/evas_object_textblock.c +++ b/src/lib/evas/canvas/evas_object_textblock.c @@ -12754,11 +12754,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, |