evas: Fix don't redraw map_surface issue 05/131805/3 accepted/tizen/unified/20170605.150656 submit/tizen/20170602.044537
authorjiin.moon <jiin.moon@samsung.com>
Wed, 31 May 2017 00:28:36 +0000 (09:28 +0900)
committerGerrit Code Review <gerrit@review.ap-northeast-2.compute.internal>
Thu, 1 Jun 2017 04:29:35 +0000 (04:29 +0000)
Refs: master, <origin/HEAD>, <origin/master>, v1.19.0-726-ge250a27
Author:     jiin.moon <jiin.moon@samsung.com>
AuthorDate: Tue May 30 19:25:37 2017 +0900
Commit:     Jean-Philippe Andre <jp.andre@samsung.com>
CommitDate: Tue May 30 19:25:37 2017 +0900

    evas: Fix don't redraw map_sufarce issue

    Summary:
    map_surface does not redraw in below case.

    1) parent and child are smart object and has map.
    3) drawing objects.
    4) apply new map to child object.

    Test Plan: sample code

    Reviewers: jpeg, cedric, jypark

    Differential Revision: https://phab.enlightenment.org/D4889

Change-Id: I692ff9efe525ff5325a3001123da26ad08cafa45

src/lib/evas/canvas/evas_map.c

index 6251790..bd6e914 100644 (file)
@@ -557,6 +557,11 @@ _evas_object_map_set(Eo *eo_obj, Evas_Object_Protected_Data *obj, const Evas_Map
      }
 
    evas_object_async_block(obj);
+
+   /* changed_pchange means map's change.
+    * This flag will be used to decide whether to redraw the map surface.
+    * And value of flag would be EINA_FALSE after rendering. */
+   obj->changed_pchange = EINA_TRUE;
    if ((!map) || (map->count < 4))
      {
         if (obj->map->surface)