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
This commit is contained in:
Hermet Park 2016-12-05 18:03:01 +09:00
parent c6dcf3dda4
commit 1e6246df24
1 changed files with 6 additions and 5 deletions

View File

@ -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,