jpeg pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=07ea964e9f5ac090184b96aa5e85f2489c87fcd1

commit 07ea964e9f5ac090184b96aa5e85f2489c87fcd1
Author: Jean-Philippe Andre <[email protected]>
Date:   Mon Jul 4 16:06:04 2016 +0900

    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 | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/src/lib/evas/canvas/evas_render.c 
b/src/lib/evas/canvas/evas_render.c
index e85e402..a429a68 100644
--- a/src/lib/evas/canvas/evas_render.c
+++ b/src/lib/evas/canvas/evas_render.c
@@ -1388,6 +1388,13 @@ evas_render_mapped(Evas_Public_Data *evas, Evas_Object 
*eo_obj,
                        RD(level, "}\n");
                        return clean_them;
                     }
+                  else if (proxy_render_data && (surface != 
obj->proxy->surface) &&
+                           obj->proxy->src_invisible)
+                    {
+                       RD(level, "  src_invisible + not proxy surface 
(recursive proxies)\n");
+                       RD(level, "}\n");
+                       return clean_them;
+                    }
                }
           }
         else if (!evas_object_is_proxy_visible(eo_obj, obj) ||

-- 


Reply via email to