}
void
-evas_object_recalc_clippees(Evas_Object *eo_obj, Evas_Object_Protected_Data *obj)
+evas_object_recalc_clippees(Evas_Object_Protected_Data *obj)
{
Eina_List *l;
Evas_Object *data;
if (obj->cur->cache.clip.dirty)
{
- evas_object_clip_recalc(eo_obj, obj);
+ evas_object_clip_recalc(obj);
EINA_LIST_FOREACH(obj->clip.clipees, l, data)
{
Evas_Object_Protected_Data *clipee = eo_data_get(data, EVAS_OBJ_CLASS);
- evas_object_recalc_clippees(data, clipee);
+ evas_object_recalc_clippees(clipee);
}
}
}
{
if (obj->prev->clipper)
{
- return evas_object_clippers_is_visible(obj->prev->eo_clipper, obj->prev->clipper);
+ return evas_object_clippers_is_visible(obj->prev->clipper->object, obj->prev->clipper);
}
return 1;
}
}
EINA_COW_STATE_WRITE_END(obj, state_write, cur);
- evas_object_clip_recalc(eo_obj, obj);
+ evas_object_clip_recalc(obj);
if (obj->is_smart)
{
Evas_Object_Protected_Data *obj2;
MAGIC_CHECK_END();
clip = eo_data_get(eo_clip, EVAS_OBJ_CLASS);
- if (obj->cur->eo_clipper == eo_clip) return;
+ if (obj->cur->clipper && obj->cur->clipper->object == eo_clip) return;
if (eo_obj == eo_clip)
{
CRIT("Setting clip %p on itself", eo_obj);
obj->cur->clipper->cur->geometry.w,
obj->cur->clipper->cur->geometry.h);
}
- evas_object_change(obj->cur->eo_clipper, obj->cur->clipper);
+ evas_object_change(obj->cur->clipper->object, obj->cur->clipper);
evas_object_change(eo_obj, obj);
EINA_COW_STATE_WRITE_BEGIN(obj, state_write, cur)
{
state_write->clipper = NULL;
- state_write->eo_clipper = NULL;
}
EINA_COW_STATE_WRITE_END(obj, state_write, cur);
}
}
EINA_COW_STATE_WRITE_BEGIN(obj, state_write, cur)
{
- state_write->eo_clipper = eo_clip;
state_write->clipper = clip;
}
EINA_COW_STATE_WRITE_END(obj, state_write, cur);
evas_object_change(eo_clip, clip);
evas_object_change(eo_obj, obj);
evas_object_clip_dirty(eo_obj, obj);
- evas_object_recalc_clippees(eo_obj, obj);
+ evas_object_recalc_clippees(obj);
if ((!obj->is_smart) &&
(!((obj->map->cur.map) && (obj->map->cur.usemap))))
{
{
Evas_Object **clip = va_arg(*list, Evas_Object **);
const Evas_Object_Protected_Data *obj = _pd;
- *clip = obj->cur->eo_clipper;
+
+ *clip = NULL;
+
+ if (obj->cur->clipper)
+ *clip = obj->cur->clipper->object;
}
EAPI void
obj->cur->clipper->cur->geometry.w,
obj->cur->clipper->cur->geometry.h);
}
- evas_object_change(obj->cur->eo_clipper, obj->cur->clipper);
+ evas_object_change(obj->cur->clipper->object, obj->cur->clipper);
}
EINA_COW_STATE_WRITE_BEGIN(obj, state_write, cur)
{
state_write->clipper = NULL;
- state_write->eo_clipper = NULL;
}
EINA_COW_STATE_WRITE_END(obj, state_write, cur);
evas_object_change(eo_obj, obj);
evas_object_clip_dirty(eo_obj, obj);
- evas_object_recalc_clippees(eo_obj, obj);
+ evas_object_recalc_clippees(obj);
if ((!obj->is_smart) &&
(!((obj->map->cur.map) && (obj->map->cur.usemap))))
{
EINA_INLIST_FOREACH(lay->objects, obj)
{
- Evas_Object *eo_obj = obj->object;
- evas_object_clip_recalc(eo_obj, obj);
- evas_object_recalc_clippees(eo_obj, obj);
+ evas_object_clip_recalc(obj);
+ evas_object_recalc_clippees(obj);
}
}
evas_object_clip_dirty(eo_obj, obj);
if (!(obj->layer->evas->is_frozen))
{
- evas_object_recalc_clippees(eo_obj, obj);
+ evas_object_recalc_clippees(obj);
if (!obj->is_smart)
{
is = evas_object_is_in_output_rect(eo_obj, obj,
if (obj->cur->clipper)
{
if (obj->cur->cache.clip.dirty)
- evas_object_clip_recalc(obj->cur->eo_clipper, obj->cur->clipper);
- obj->cur->clipper->func->render_pre(obj->cur->eo_clipper, obj->cur->clipper);
+ evas_object_clip_recalc(obj->cur->clipper);
+ obj->cur->clipper->func->render_pre(obj->cur->clipper->object,
+ obj->cur->clipper);
}
/* Proxy: Do it early */
if (o->cur->source)
if (obj->cur->clipper)
{
if (obj->cur->cache.clip.dirty)
- evas_object_clip_recalc(obj->cur->eo_clipper, obj->cur->clipper);
- obj->cur->clipper->func->render_pre(obj->cur->eo_clipper, obj->cur->clipper);
+ evas_object_clip_recalc(obj->cur->clipper);
+ obj->cur->clipper->func->render_pre(obj->cur->clipper->object, obj->cur->clipper);
}
/* now figure what changed and add draw rects */
/* if it just became visible or invisible */
{ NULL, NULL, 0, 0 }, { NULL, NULL, 0, 0 }, NULL, 0, 0, NULL, NULL
};
static const Evas_Object_Protected_State default_state = {
- NULL, NULL, { 0, 0, 0, 0 }, { 0, 0, 0, 0 },
+ NULL, { 0, 0, 0, 0 }, { 0, 0, 0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, EINA_FALSE, EINA_FALSE } },
{ 255, 255, 255, 255 },
1.0, EVAS_RENDER_BLEND, EINA_FALSE, EINA_FALSE, EINA_FALSE, EINA_FALSE, EINA_FALSE, EINA_FALSE, EINA_FALSE
obj->doing.in_move--;
if (!(obj->layer->evas->is_frozen))
{
- evas_object_recalc_clippees(eo_obj, obj);
+ evas_object_recalc_clippees(obj);
if (!pass)
{
if (!obj->is_smart)
if (!(obj->layer->evas->is_frozen))
{
/* NB: If this creates glitches on screen then move to above position */
- evas_object_recalc_clippees(eo_obj, obj);
+ evas_object_recalc_clippees(obj);
// if (obj->func->coords_recalc) obj->func->coords_recalc(eo_obj);
if (!pass)
if (!(obj->layer->evas->is_frozen))
{
evas_object_clip_across_clippees_check(eo_obj, obj);
- evas_object_recalc_clippees(eo_obj, obj);
+ evas_object_recalc_clippees(obj);
if ((!evas_event_passes_through(eo_obj, obj)) &&
(!evas_event_freezes_through(eo_obj, obj)) &&
(!evas_object_is_source_invisible(eo_obj, obj)))
if (!(obj->layer->evas->is_frozen))
{
evas_object_clip_across_clippees_check(eo_obj, obj);
- evas_object_recalc_clippees(eo_obj, obj);
+ evas_object_recalc_clippees(obj);
if ((!evas_event_passes_through(eo_obj, obj)) &&
(!evas_event_freezes_through(eo_obj, obj)) &&
(!evas_object_is_source_invisible(eo_obj, obj)))
(evas_event_passes_through(eo_obj, obj))) continue;
if (evas_object_is_source_invisible(eo_obj, obj)) continue;
if ((!include_hidden_objects) && (!obj->cur->visible)) continue;
- evas_object_clip_recalc(eo_obj, obj);
+ evas_object_clip_recalc(obj);
if ((evas_object_is_in_output_rect(eo_obj, obj, xx, yy, 1, 1)) &&
(!obj->clip.clipees))
{
(evas_event_passes_through(eo_obj, obj))) continue;
if (evas_object_is_source_invisible(eo_obj, obj)) continue;
if ((!include_hidden_objects) && (!obj->cur->visible)) continue;
- evas_object_clip_recalc(eo_obj, obj);
+ evas_object_clip_recalc(obj);
if ((evas_object_is_in_output_rect(eo_obj, obj, xx, yy, ww, hh)) &&
(!obj->clip.clipees))
{
(evas_event_passes_through(eo_obj, obj))) continue;
if (evas_object_is_source_invisible(eo_obj, obj)) continue;
if ((!include_hidden_objects) && (!obj->cur->visible)) continue;
- evas_object_clip_recalc(eo_obj, obj);
+ evas_object_clip_recalc(obj);
if ((evas_object_is_in_output_rect(eo_obj, obj, xx, yy, 1, 1)) &&
(!obj->clip.clipees))
in = eina_list_prepend(in, eo_obj);
(evas_event_passes_through(eo_obj, obj))) continue;
if (evas_object_is_source_invisible(eo_obj, obj)) continue;
if ((!include_hidden_objects) && (!obj->cur->visible)) continue;
- evas_object_clip_recalc(eo_obj, obj);
+ evas_object_clip_recalc(obj);
if ((evas_object_is_in_output_rect(eo_obj, obj, xx, yy, ww, hh)) &&
(!obj->clip.clipees))
in = eina_list_prepend(in, eo_obj);
if (obj->cur->clipper)
{
if (obj->cur->cache.clip.dirty)
- evas_object_clip_recalc(obj->cur->eo_clipper, obj->cur->clipper);
- obj->cur->clipper->func->render_pre(obj->cur->eo_clipper, obj->cur->clipper);
+ evas_object_clip_recalc(obj->cur->clipper);
+ obj->cur->clipper->func->render_pre(obj->cur->clipper->object, obj->cur->clipper);
}
/* now figure what changed and add draw rects */
/* if it just became visible or invisible */
if (obj->cur->clipper)
{
if (obj->cur->cache.clip.dirty)
- evas_object_clip_recalc(obj->cur->eo_clipper, obj->cur->clipper);
- obj->cur->clipper->func->render_pre(obj->cur->eo_clipper, obj->cur->clipper);
+ evas_object_clip_recalc(obj->cur->clipper);
+ obj->cur->clipper->func->render_pre(obj->cur->clipper->object, obj->cur->clipper);
}
/* now figure what changed and add draw rects */
/* if it just became visible or invisible */
if (obj->cur->clipper)
{
if (obj->cur->cache.clip.dirty)
- evas_object_clip_recalc(obj->cur->eo_clipper, obj->cur->clipper);
- obj->cur->clipper->func->render_pre(obj->cur->eo_clipper, obj->cur->clipper);
+ evas_object_clip_recalc(obj->cur->clipper);
+ obj->cur->clipper->func->render_pre(obj->cur->clipper->object, obj->cur->clipper);
}
/* If object size changed and ellipsis is set */
if (((o->cur.ellipsis >= 0.0 ||
if (obj->cur->clipper)
{
if (obj->cur->cache.clip.dirty)
- evas_object_clip_recalc(obj->cur->eo_clipper, obj->cur->clipper);
- obj->cur->clipper->func->render_pre(obj->cur->eo_clipper, obj->cur->clipper);
+ evas_object_clip_recalc(obj->cur->clipper);
+ obj->cur->clipper->func->render_pre(obj->cur->clipper->object, obj->cur->clipper);
}
/* now figure what changed and add draw rects */
/* if it just became visible or invisible */
if (obj->cur->clipper)
{
if (obj->cur->cache.clip.dirty)
- evas_object_clip_recalc(obj->cur->eo_clipper, obj->cur->clipper);
- obj->cur->clipper->func->render_pre(obj->cur->eo_clipper, obj->cur->clipper);
+ evas_object_clip_recalc(obj->cur->clipper);
+ obj->cur->clipper->func->render_pre(obj->cur->clipper->object, obj->cur->clipper);
}
/* now figure what changed and add draw rects */
/* if it just became visible or invisible */
RD(" [--- PHASE 1 DIRECT\n");
for (i = 0; i < active_objects->count; i++)
{
- Evas_Object *eo_obj;
-
Evas_Object_Protected_Data *obj = eina_array_data_get(active_objects, i);
- eo_obj = obj->object;
+
if (obj->changed)
{
/* Flag need redraw on proxy too */
- evas_object_clip_recalc(eo_obj, obj);
+ evas_object_clip_recalc(obj);
EINA_LIST_FOREACH(obj->proxy->proxies, l, eo_proxy)
{
Evas_Object_Protected_Data *proxy;
if (obj->changed)
{
/* Flag need redraw on proxy too */
- evas_object_clip_recalc(eo_obj, obj);
+ evas_object_clip_recalc(obj);
obj->func->render_pre(eo_obj, obj);
if (obj->proxy->redraw)
_evas_render_prev_cur_clip_cache_add(e, obj);
if (obj->delete_me != 0) clean_them = EINA_TRUE;
/* build active object list */
- evas_object_clip_recalc(eo_obj, obj);
+ evas_object_clip_recalc(obj);
is_active = evas_object_is_active(eo_obj, obj);
obj->is_active = is_active;
if (obj->changed_map && _evas_render_has_map(eo_obj, obj))
goto clean_stuff;
- evas_object_clip_recalc(eo_obj, obj);
+ evas_object_clip_recalc(obj);
is_active = evas_object_is_active(eo_obj, obj);
if ((!is_active) && (!obj->is_active) && (!obj->render_pre) &&
if ((!proxy_render) && (evas_object_is_source_invisible(eo_obj, obj)))
return clean_them;
- evas_object_clip_recalc(eo_obj, obj);
+ evas_object_clip_recalc(obj);
RDI(level);
RD(" { evas_render_mapped(%p, %p, %p, %p, %i, %i, %i, %i)\n", e, obj, context, surface, off_x, off_y, mapped, level);
{
int x, y, w, h;
- evas_object_clip_recalc(eo_obj, obj);
+ evas_object_clip_recalc(obj);
x = obj->cur->cache.clip.x;
y = obj->cur->cache.clip.y;
w = obj->cur->cache.clip.w;
int x, y, w, h;
if (_evas_render_has_map(eo_obj, obj))
- evas_object_clip_recalc(eo_obj, obj);
+ evas_object_clip_recalc(obj);
x = obj->cur->cache.clip.x + off_x;
y = obj->cur->cache.clip.y + off_y;
int x, y, w, h;
if (_evas_render_has_map(eo_obj, obj))
- evas_object_clip_recalc(eo_obj, obj);
+ evas_object_clip_recalc(obj);
x = obj->cur->cache.clip.x;
y = obj->cur->cache.clip.y;
w = obj->cur->cache.clip.w;
oo->cur->geometry.y,
oo->cur->geometry.w,
oo->cur->geometry.h);
- eo_oo = oo->cur->eo_clipper;
+ eo_oo = oo->cur->clipper->object;
oo = oo->cur->clipper;
}
}
{
if (obj->cur->clipper)
{
- return evas_object_clippers_is_visible(obj->cur->eo_clipper,
+ return evas_object_clippers_is_visible(obj->cur->clipper->object,
obj->cur->clipper);
}
return 1;
}
static inline void
-evas_object_clip_recalc(Evas_Object *eo_obj, Evas_Object_Protected_Data *obj)
+evas_object_clip_recalc(Evas_Object_Protected_Data *obj)
{
Evas_Object_Protected_Data *clipper = NULL;
int cx, cy, cw, ch, cr, cg, cb, ca;
int nx, ny, nw, nh, nr, ng, nb, na;
Eina_Bool cvis, nvis;
+ Evas_Object *eo_obj;
+ eo_obj = obj->object;
clipper = obj->cur->clipper;
if ((!obj->cur->cache.clip.dirty) &&
{
// this causes problems... hmmm ?????
if (clipper->cur->cache.clip.dirty)
- evas_object_clip_recalc(obj->cur->eo_clipper, clipper);
+ evas_object_clip_recalc(clipper);
// I don't know why this test was here in the first place. As I have
// no issue showing up due to this, I keep it and move color out of it.
struct _Evas_Object_Protected_State
{
Evas_Object_Protected_Data *clipper;
- Evas_Object *eo_clipper;
Evas_Coord_Rectangle geometry;
Evas_Coord_Rectangle bounding_box;
void evas_rects_return_difference_rects(Eina_Array *rects, int x, int y, int w, int h, int xx, int yy, int ww, int hh);
void evas_object_clip_dirty(Evas_Object *obj, Evas_Object_Protected_Data *pd);
-void evas_object_recalc_clippees(Evas_Object *obj, Evas_Object_Protected_Data *pd);
+void evas_object_recalc_clippees(Evas_Object_Protected_Data *pd);
Evas_Layer *evas_layer_new(Evas *e);
void evas_layer_pre_free(Evas_Layer *lay);
void evas_layer_free_objects(Evas_Layer *lay);