Evas render: Fix another map clip render issue
authorJean-Philippe Andre <jp.andre@samsung.com>
Fri, 20 Nov 2015 05:23:29 +0000 (14:23 +0900)
committerJean-Philippe Andre <jp.andre@samsung.com>
Fri, 20 Nov 2015 05:23:29 +0000 (14:23 +0900)
This time it's only about performance. We seem to be setting the
changed flag too often, which might trigger unnecessary redraws.

- map flag is set if there is currently a map AND it's not an image
  object (because images can map themselves)
- hmap flag is set if there was a map before

So, map != hmap does not imply a transition between a mapped and
non-mapped state. Add an extra check before marking the clip
as dirty and changed.

src/lib/evas/canvas/evas_render.c

index bdac680..63749e8 100644 (file)
@@ -630,7 +630,7 @@ _evas_render_phase1_object_process(Evas_Public_Data *e, Evas_Object *eo_obj,
                   *redraw_all = 1;
                }
           }
-        if (obj->cur->clipper)
+        if (!map && obj->cur->clipper)
           {
              // Fix some bad clipping issues after an evas_map animation finishes
              evas_object_change(obj->cur->clipper->object, obj->cur->clipper);