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
This commit is contained in:
Mike Blumenkrantz 2016-03-04 13:06:41 -05:00
parent c97b52b02c
commit 440d9ceb81
1 changed files with 7 additions and 3 deletions

View File

@ -3824,7 +3824,10 @@ e_comp_object_util_mirror_add(Evas_Object *obj)
evas_object_image_size_set(o, w, h); evas_object_image_size_set(o, w, h);
if (cw->ec->shaped) 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 else
{ {
if (cw->native) if (cw->native)
@ -3840,7 +3843,7 @@ e_comp_object_util_mirror_add(Evas_Object *obj)
} }
} }
else else
pix = evas_object_image_data_get(cw->obj, EINA_FALSE); pix = e_pixmap_image_data_get(cw->ec->pixmap);
} }
if (pix) 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_set(o, bx, by, bxx, byy);
//evas_object_image_border_center_fill_set(o, EVAS_BORDER_FILL_SOLID); //evas_object_image_border_center_fill_set(o, EVAS_BORDER_FILL_SOLID);
evas_object_image_data_set(o, pix); 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) if (dirty)
evas_object_image_data_update_add(o, 0, 0, w, h); evas_object_image_data_update_add(o, 0, 0, w, h);
} }