summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHermet Park <hermet@hermet.pe.kr>2016-12-05 18:03:01 +0900
committerHermet Park <hermet@hermet.pe.kr>2016-12-05 18:07:39 +0900
commit1e6246df24f84eebda95c9d18f90ead3f803789e (patch)
tree3d838d8b02b9658af048a8d0f1b91700caac09d2
parentc6dcf3dda448c422bd556834b336f7fdb9296097 (diff)
downloadefl-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.c11
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,