forked from enlightenment/efl
evas: Some more opacity check fixes
This should fix T3309 Snapshot objects are image objects, so the function is_opaque exists. No need to bypass it. Also, alpha rectangles are not opaque. Assume that anything with a filter is not opaque. All of this fixes T3309 but the main point was on snapshot objects (probably because the only point of a snapshot is to apply a filter on it).
This commit is contained in:
parent
9248d3a5ac
commit
e1ff000704
|
@ -2489,6 +2489,8 @@ evas_object_image_is_opaque(Evas_Object *eo_obj EINA_UNUSED,
|
||||||
return o->cur->opaque;
|
return o->cur->opaque;
|
||||||
if (!o->engine_data)
|
if (!o->engine_data)
|
||||||
return o->cur->opaque;
|
return o->cur->opaque;
|
||||||
|
if (o->has_filter)
|
||||||
|
return o->cur->opaque;
|
||||||
|
|
||||||
// FIXME: use proxy
|
// FIXME: use proxy
|
||||||
if (o->cur->source)
|
if (o->cur->source)
|
||||||
|
|
|
@ -362,7 +362,7 @@ evas_object_rectangle_is_opaque(Evas_Object *eo_obj EINA_UNUSED,
|
||||||
return 1;
|
return 1;
|
||||||
if (obj->cur->render_op != EVAS_RENDER_BLEND)
|
if (obj->cur->render_op != EVAS_RENDER_BLEND)
|
||||||
return 0;
|
return 0;
|
||||||
return 1;
|
return (obj->cur->cache.clip.a == 255) ? 1 : 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
|
|
|
@ -79,9 +79,6 @@ evas_object_is_opaque(Evas_Object *eo_obj, Evas_Object_Protected_Data *obj)
|
||||||
if ((obj->cur->clipper && obj->cur->clipper->mask->is_mask) ||
|
if ((obj->cur->clipper && obj->cur->clipper->mask->is_mask) ||
|
||||||
(obj->clip.mask))
|
(obj->clip.mask))
|
||||||
return 0;
|
return 0;
|
||||||
/* Non masked snapshot are supposed to be opaque */
|
|
||||||
if (obj->cur->snapshot)
|
|
||||||
return 1;
|
|
||||||
if (obj->func->is_opaque)
|
if (obj->func->is_opaque)
|
||||||
return obj->func->is_opaque(eo_obj, obj, obj->private_data);
|
return obj->func->is_opaque(eo_obj, obj, obj->private_data);
|
||||||
return 1;
|
return 1;
|
||||||
|
|
Loading…
Reference in New Issue