cherrypick from upstream.
authorHermet Park <hermet@hermet.pe.kr>
Mon, 5 Dec 2016 08:33:15 +0000 (17:33 +0900)
committerWonki Kim <wonki_.kim@samsung.com>
Mon, 2 Jan 2017 07:23:57 +0000 (16:23 +0900)
http://git.enlightenment.org/core/efl.git/commit/?id=1e6246df24f84eebda95c9d18f90ead3f803789e

commit 1e6246df24f84eebda95c9d18f90ead3f803789e
Author: Hermet Park <hermet@hermet.pe.kr>
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

index e94c859..3e668d3 100644 (file)
@@ -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,