evas: Fix rare issue with recursive proxy src invisible
authorJean-Philippe Andre <jp.andre@samsung.com>
Mon, 4 Jul 2016 07:06:04 +0000 (16:06 +0900)
committerJean-Philippe Andre <jp.andre@samsung.com>
Mon, 4 Jul 2016 07:09:39 +0000 (16:09 +0900)
commit07ea964e9f5ac090184b96aa5e85f2489c87fcd1
tree72c05ae9744eaaaa17dc14a7a4dd221d5e7a3cce
parent3671dd64c6cbf6a8ce3f20c1be143805cf3c9e49
evas: Fix rare issue with recursive proxy src invisible

Scenario:
  smart {
    text
    proxy -> text, src_invisible
  }
  proxy -> smart

What we should see:
  smart {
    (blank)
    proxy -> text
  }
  proxy -> {
    (blank)
    proxy -> text
  }

What we saw:
  smart {
    (blank)
    proxy -> text
  }
  proxy -> {
    text
    proxy -> text
  }

Solution:
Check in evas render, when we're inside a proxy render, and the
proxy src_invisible flag is on (evas_object_source_visible_set(0),
that we're rendering the object itself to its proxy surface. If not,
it means we're rendering another proxy surface, ie. a parent smart
object's proxy surface.

Still loving evas render.

Fixes T4006.

@fix
src/lib/evas/canvas/evas_render.c