{
obj->changed = EINA_FALSE;
obj->changed_move = EINA_FALSE;
+ obj->changed_color = EINA_FALSE;
obj->changed_map = EINA_FALSE;
obj->changed_pchange = EINA_FALSE;
}
if (obj->changed) return;
-// obj->changed = EINA_TRUE;
evas_render_object_recalc(obj);
/* set changed flag on all objects this one clips too */
if (!((movch) && (obj->is_static_clip)))
obj->cur.color.g = g;
obj->cur.color.b = b;
evas_object_clip_dirty(obj);
+
if ((obj->cur.color.a == 0) && (a == 0) && (obj->cur.render_op == EVAS_RENDER_BLEND)) return;
obj->cur.color.a = a;
+ obj->changed_color = EINA_TRUE;
evas_object_change(obj);
}
break;
}
}
+ if (obj->changed_color) changed = EINA_TRUE;
evas_object_change_reset(obj);
}
- else
+ else if (obj->changed)
{
- if (obj->changed)
- {
- if ((obj->changed_pchange) && (obj->changed_map))
- changed = EINA_TRUE;
- evas_object_change_reset(obj);
- }
+ if (((obj->changed_pchange) && (obj->changed_map)) ||
+ (obj->changed_color))
+ changed = EINA_TRUE;
+ evas_object_change_reset(obj);
}
// clear surface before re-render
Eina_Bool changed : 1;
Eina_Bool changed_move : 1;
+ Eina_Bool changed_color : 1;
Eina_Bool changed_map : 1;
Eina_Bool changed_pchange : 1;
Eina_Bool del_ref : 1;