enforce image border/size/pixels_dirty setting on comp mirrors during create
this should provide a more accurate first-render for mirrors as they are added
This commit is contained in:
parent
62792ce662
commit
5a001b1759
|
@ -3574,13 +3574,24 @@ e_comp_object_util_mirror_add(Evas_Object *obj)
|
||||||
pix = evas_object_image_data_get(cw->obj, EINA_FALSE);
|
pix = evas_object_image_data_get(cw->obj, EINA_FALSE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (pix)
|
{
|
||||||
{
|
Eina_Bool dirty;
|
||||||
evas_object_image_data_set(o, pix);
|
int bx, by, bxx, byy;
|
||||||
if (!argb)
|
|
||||||
evas_object_image_data_set(cw->obj, pix);
|
dirty = evas_object_image_pixels_dirty_get(cw->obj);
|
||||||
}
|
evas_object_image_pixels_dirty_set(o, dirty);
|
||||||
evas_object_image_data_update_add(o, 0, 0, w, h);
|
e_pixmap_image_opaque_get(cw->ec->pixmap, &bx, &by, &bxx, &byy);
|
||||||
|
if (bxx && byy)
|
||||||
|
bxx = cw->ec->client.w - (bx + bxx), byy = cw->ec->client.h - (by + byy);
|
||||||
|
else
|
||||||
|
bx = by = bxx = byy = 0;
|
||||||
|
evas_object_image_border_set(o, bx, by, bxx, byy);
|
||||||
|
if (dirty)
|
||||||
|
evas_object_image_data_update_add(o, 0, 0, w, h);
|
||||||
|
evas_object_image_data_set(o, pix);
|
||||||
|
if (!argb)
|
||||||
|
evas_object_image_data_set(cw->obj, pix);
|
||||||
|
}
|
||||||
return o;
|
return o;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue