discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=ed7a0246f907b456458dc6c4e9809caf59eb0958

commit ed7a0246f907b456458dc6c4e9809caf59eb0958
Author: Mike Blumenkrantz <zm...@osg.samsung.com>
Date:   Fri Mar 4 13:06:41 2016 -0500

    don't directly use image data when creating a comp object mirror
    
    in the case where pixmap image data does not yet exist, the returned
    pointer will be garbage data from the internal buffer
---
 src/bin/e_comp_object.c | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c
index 23053c2..1f6b33b 100644
--- a/src/bin/e_comp_object.c
+++ b/src/bin/e_comp_object.c
@@ -3857,7 +3857,10 @@ e_comp_object_util_mirror_add(Evas_Object *obj)
    evas_object_image_size_set(o, w, h);
 
    if (cw->ec->shaped)
-     pix = evas_object_image_data_get(cw->obj, 0);
+     {
+        if (e_pixmap_image_data_get(cw->ec->pixmap))
+          pix = evas_object_image_data_get(cw->obj, 0);
+     }
    else
      {
         if (cw->native)
@@ -3873,7 +3876,7 @@ e_comp_object_util_mirror_add(Evas_Object *obj)
                }
           }
         else
-          pix = evas_object_image_data_get(cw->obj, EINA_FALSE);
+          pix = e_pixmap_image_data_get(cw->ec->pixmap);
      }
    if (pix)
      {
@@ -3890,7 +3893,8 @@ e_comp_object_util_mirror_add(Evas_Object *obj)
       //evas_object_image_border_set(o, bx, by, bxx, byy);
       //evas_object_image_border_center_fill_set(o, EVAS_BORDER_FILL_SOLID);
       evas_object_image_data_set(o, pix);
-      evas_object_image_data_set(cw->obj, pix);
+      if (cw->ec->shaped)
+        evas_object_image_data_set(cw->obj, pix);
       if (dirty)
         evas_object_image_data_update_add(o, 0, 0, w, h);
    }

-- 


Reply via email to