forked from enlightenment/efl
parent
b10d8cce4a
commit
4aca7949f5
|
@ -176,6 +176,8 @@ evas_object_clip_set(Evas_Object *obj, Evas_Object *clip)
|
|||
{
|
||||
/* unclip */
|
||||
obj->cur.clipper->clip.clipees = evas_list_remove(obj->cur.clipper->clip.clipees, obj);
|
||||
if (!obj->cur.clipper->clip.clipees) obj->cur.clipper->cur.have_clipees = 0;
|
||||
evas_object_change(obj->cur.clipper);
|
||||
evas_object_change(obj);
|
||||
obj->cur.clipper = NULL;
|
||||
}
|
||||
|
@ -191,6 +193,8 @@ evas_object_clip_set(Evas_Object *obj, Evas_Object *clip)
|
|||
}
|
||||
obj->cur.clipper = clip;
|
||||
clip->clip.clipees = evas_list_append(clip->clip.clipees, obj);
|
||||
if (clip->clip.clipees) clip->cur.have_clipees = 1;
|
||||
evas_object_change(clip);
|
||||
evas_object_change(obj);
|
||||
evas_object_clip_dirty(obj);
|
||||
evas_object_recalc_clippees(obj);
|
||||
|
@ -278,6 +282,8 @@ evas_object_clip_unset(Evas_Object *obj)
|
|||
obj->smart.smart->smart_class->clip_unset(obj);
|
||||
}
|
||||
obj->cur.clipper->clip.clipees = evas_list_remove(obj->cur.clipper->clip.clipees, obj);
|
||||
if (!obj->cur.clipper->clip.clipees) obj->cur.clipper->cur.have_clipees = 0;
|
||||
evas_object_change(obj->cur.clipper);
|
||||
obj->cur.clipper = NULL;
|
||||
evas_object_change(obj);
|
||||
evas_object_clip_dirty(obj);
|
||||
|
|
|
@ -101,9 +101,11 @@ _evas_render_phase1_object_process(Evas *e, Evas_Object *obj, Evas_List **active
|
|||
}
|
||||
else
|
||||
{
|
||||
if ((is_active) && (obj->restack) && (!obj->clip.clipees))
|
||||
if ((is_active) && (obj->restack) && (!obj->clip.clipees) &&
|
||||
((evas_object_is_visible(obj) && (!obj->cur.have_clipees)) ||
|
||||
(evas_object_was_visible(obj) && (!obj->prev.have_clipees))))
|
||||
*restack_objects = evas_list_append(*restack_objects, obj);
|
||||
else if (is_active)
|
||||
else if ((is_active) && (!obj->clip.clipees))
|
||||
obj->func->render_pre(obj);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -317,6 +317,7 @@ struct _Evas_Object
|
|||
unsigned char r, g, b, a;
|
||||
} color;
|
||||
unsigned char visible : 1;
|
||||
unsigned char have_clipees : 1;
|
||||
int layer;
|
||||
Evas_Object *clipper;
|
||||
} cur, prev;
|
||||
|
|
Loading…
Reference in New Issue