discomfitor pushed a commit to branch enlightenment-0.20.

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

commit 440d9ceb81577e085c59d27f6bdcea83a104c773
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 28f14b1..ff356ba 100644
--- a/src/bin/e_comp_object.c
+++ b/src/bin/e_comp_object.c
@@ -3824,7 +3824,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)
@@ -3840,7 +3843,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)
      {
@@ -3857,7 +3860,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