aboutsummaryrefslogtreecommitdiffstats
path: root/legacy/evas/src/lib/canvas/evas_clip.c
diff options
context:
space:
mode:
authorCarsten Haitzler <raster@rasterman.com>2010-09-02 09:40:23 +0000
committerCarsten Haitzler <raster@rasterman.com>2010-09-02 09:40:23 +0000
commitb37a2117d153e302f42210c3ab4e2205229c868b (patch)
tree4c36fa033352bbaeaf2ec7884db16fc91b3bf0fa /legacy/evas/src/lib/canvas/evas_clip.c
parentevas_object_text*_get: return 0 in case of error (diff)
downloadefl-b37a2117d153e302f42210c3ab4e2205229c868b.tar.gz
fix more map+clip goop.
SVN revision: 51830
Diffstat (limited to 'legacy/evas/src/lib/canvas/evas_clip.c')
-rw-r--r--legacy/evas/src/lib/canvas/evas_clip.c29
1 files changed, 28 insertions, 1 deletions
diff --git a/legacy/evas/src/lib/canvas/evas_clip.c b/legacy/evas/src/lib/canvas/evas_clip.c
index 6c9aac0044..1c1abeb032 100644
--- a/legacy/evas/src/lib/canvas/evas_clip.c
+++ b/legacy/evas/src/lib/canvas/evas_clip.c
@@ -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