forked from enlightenment/efl
parent
3527150853
commit
b37a2117d1
|
@ -93,16 +93,43 @@ evas_object_child_map_across_mark(Evas_Object *obj, Evas_Object *map_obj, Eina_B
|
|||
evas_object_child_map_across_mark(obj2, map_obj, force);
|
||||
}
|
||||
}
|
||||
else if (obj->clip.clipees)
|
||||
{
|
||||
Eina_List *l;
|
||||
Evas_Object *obj2;
|
||||
|
||||
EINA_LIST_FOREACH(obj->clip.clipees, l, obj2)
|
||||
evas_object_child_map_across_mark(obj2, map_obj, force);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
static void
|
||||
void
|
||||
evas_object_clip_across_check(Evas_Object *obj)
|
||||
{
|
||||
#ifdef MAP_ACROSS
|
||||
if (!obj->cur.clipper) return;
|
||||
if (obj->cur.clipper->cur.map_parent != obj->cur.map_parent)
|
||||
evas_object_child_map_across_mark(obj, obj->cur.map_parent, 1);
|
||||
#endif
|
||||
}
|
||||
|
||||
void
|
||||
evas_object_clip_across_clippees_check(Evas_Object *obj)
|
||||
{
|
||||
#ifdef MAP_ACROSS
|
||||
Eina_List *l;
|
||||
Evas_Object *obj2;
|
||||
|
||||
if (!obj->clip.clipees) return;
|
||||
evas_object_child_map_across_mark(obj, obj->cur.map_parent, 1);
|
||||
if (obj->cur.cache.clip.dirty)
|
||||
{
|
||||
EINA_LIST_FOREACH(obj->clip.clipees, l, obj2)
|
||||
evas_object_clip_across_clippees_check(obj2);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
// this function is called on an object when map is enabled or disabled on it
|
||||
|
|
|
@ -1080,6 +1080,7 @@ evas_object_show(Evas_Object *obj)
|
|||
evas_object_clip_dirty(obj);
|
||||
if (obj->layer->evas->events_frozen <= 0)
|
||||
{
|
||||
evas_object_clip_across_clippees_check(obj);
|
||||
evas_object_recalc_clippees(obj);
|
||||
if (!evas_event_passes_through(obj))
|
||||
{
|
||||
|
@ -1135,6 +1136,7 @@ evas_object_hide(Evas_Object *obj)
|
|||
evas_object_clip_dirty(obj);
|
||||
if (obj->layer->evas->events_frozen <= 0)
|
||||
{
|
||||
evas_object_clip_across_clippees_check(obj);
|
||||
evas_object_recalc_clippees(obj);
|
||||
if (!evas_event_passes_through(obj))
|
||||
{
|
||||
|
|
|
@ -734,6 +734,8 @@ int evas_object_was_opaque(Evas_Object *obj);
|
|||
int evas_object_is_inside(Evas_Object *obj, Evas_Coord x, Evas_Coord y);
|
||||
int evas_object_was_inside(Evas_Object *obj, Evas_Coord x, Evas_Coord y);
|
||||
int evas_object_clippers_was_visible(Evas_Object *obj);
|
||||
void evas_object_clip_across_check(Evas_Object *obj);
|
||||
void evas_object_clip_across_clippees_check(Evas_Object *obj);
|
||||
void evas_object_mapped_clip_across_mark(Evas_Object *obj);
|
||||
void evas_event_callback_call(Evas *e, Evas_Callback_Type type, void *event_info);
|
||||
void evas_object_event_callback_call(Evas_Object *obj, Evas_Callback_Type type, void *event_info);
|
||||
|
|
Loading…
Reference in New Issue