summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Michael <cp.michael@samsung.com>2019-05-29 15:36:53 -0400
committerMike Blumenkrantz <zmike@samsung.com>2019-05-29 15:37:36 -0400
commit94d1b0f3bf7aa46a32d1590c5e8abcb52920c6a4 (patch)
tree2701b181371683a6f1dfbcdccc82866f461afb3f
parentef23de1ea4bfd7040b350af30af3fa2d5895bcb7 (diff)
evas_inline: Clean up evas_object_is_visible function
Summary: This file is full of functions called as: foo(eo_obj, obj); Most of them can be reduced to foo(obj); and internally get the eo_obj with obj->object This would make it impossible to screw up calling them passing an unrelated pair, and make calling code a little more readable. ref T7230 Depends on D9045 Reviewers: raster, cedric, zmike Reviewed By: zmike Subscribers: #reviewers, #committers Tags: #efl Maniphest Tasks: T7230 Differential Revision: https://phab.enlightenment.org/D9046
-rw-r--r--src/lib/evas/canvas/efl_canvas_vg_object.c4
-rw-r--r--src/lib/evas/canvas/evas_clip.c4
-rw-r--r--src/lib/evas/canvas/evas_object_image.c4
-rw-r--r--src/lib/evas/canvas/evas_object_line.c2
-rw-r--r--src/lib/evas/canvas/evas_object_polygon.c2
-rw-r--r--src/lib/evas/canvas/evas_object_rectangle.c4
-rw-r--r--src/lib/evas/canvas/evas_object_text.c2
-rw-r--r--src/lib/evas/canvas/evas_object_textblock.c8
-rw-r--r--src/lib/evas/canvas/evas_object_textgrid.c2
-rw-r--r--src/lib/evas/canvas/evas_render.c54
-rw-r--r--src/lib/evas/include/evas_inline.x6
11 files changed, 45 insertions, 47 deletions
diff --git a/src/lib/evas/canvas/efl_canvas_vg_object.c b/src/lib/evas/canvas/efl_canvas_vg_object.c
index c350200593..1ef55538ff 100644
--- a/src/lib/evas/canvas/efl_canvas_vg_object.c
+++ b/src/lib/evas/canvas/efl_canvas_vg_object.c
@@ -642,7 +642,7 @@ _efl_canvas_vg_object_render_pre(Evas_Object *eo_obj,
642 642
643 /* now figure what changed and add draw rects */ 643 /* now figure what changed and add draw rects */
644 /* if it just became visible or invisible */ 644 /* if it just became visible or invisible */
645 is_v = evas_object_is_visible(eo_obj, obj); 645 is_v = evas_object_is_visible(obj);
646 was_v = evas_object_was_visible(obj); 646 was_v = evas_object_was_visible(obj);
647 if (!(is_v | was_v)) goto done; 647 if (!(is_v | was_v)) goto done;
648 648
@@ -701,7 +701,7 @@ _efl_canvas_vg_object_render_pre(Evas_Object *eo_obj,
701 /* it obviously didn't change - add a NO obscure - this "unupdates" this */ 701 /* it obviously didn't change - add a NO obscure - this "unupdates" this */
702 /* area so if there were updates for it they get wiped. don't do it if we */ 702 /* area so if there were updates for it they get wiped. don't do it if we */
703 /* arent fully opaque and we are visible */ 703 /* arent fully opaque and we are visible */
704 if (evas_object_is_visible(eo_obj, obj) && 704 if (evas_object_is_visible(obj) &&
705 evas_object_is_opaque(eo_obj, obj) && 705 evas_object_is_opaque(eo_obj, obj) &&
706 (!obj->clip.clipees)) 706 (!obj->clip.clipees))
707 { 707 {
diff --git a/src/lib/evas/canvas/evas_clip.c b/src/lib/evas/canvas/evas_clip.c
index 809c24f72a..d455e80979 100644
--- a/src/lib/evas/canvas/evas_clip.c
+++ b/src/lib/evas/canvas/evas_clip.c
@@ -380,7 +380,7 @@ _efl_canvas_object_clipper_set(Eo *eo_obj, Evas_Object_Protected_Data *obj, Evas
380 evas_object_recalc_clippees(obj); 380 evas_object_recalc_clippees(obj);
381 if ((!obj->is_smart) && 381 if ((!obj->is_smart) &&
382 (!((obj->map->cur.map) && (obj->map->cur.usemap))) && 382 (!((obj->map->cur.map) && (obj->map->cur.usemap))) &&
383 evas_object_is_visible(eo_obj, obj)) 383 evas_object_is_visible(obj))
384 { 384 {
385 _evas_canvas_event_pointer_in_rect_mouse_move_feed(obj->layer->evas, 385 _evas_canvas_event_pointer_in_rect_mouse_move_feed(obj->layer->evas,
386 eo_obj, 386 eo_obj,
@@ -430,7 +430,7 @@ _clip_unset(Eo *eo_obj, Evas_Object_Protected_Data *obj)
430 430
431 if ((!obj->is_smart) && 431 if ((!obj->is_smart) &&
432 (!((obj->map->cur.map) && (obj->map->cur.usemap))) && 432 (!((obj->map->cur.map) && (obj->map->cur.usemap))) &&
433 evas_object_is_visible(eo_obj, obj)) 433 evas_object_is_visible(obj))
434 { 434 {
435 _evas_canvas_event_pointer_in_rect_mouse_move_feed(obj->layer->evas, 435 _evas_canvas_event_pointer_in_rect_mouse_move_feed(obj->layer->evas,
436 eo_obj, 436 eo_obj,
diff --git a/src/lib/evas/canvas/evas_object_image.c b/src/lib/evas/canvas/evas_object_image.c
index 16ed8b5b0d..46a9c1e9c3 100644
--- a/src/lib/evas/canvas/evas_object_image.c
+++ b/src/lib/evas/canvas/evas_object_image.c
@@ -2293,7 +2293,7 @@ evas_object_image_render_pre(Evas_Object *eo_obj,
2293 2293
2294 /* now figure what changed and add draw rects */ 2294 /* now figure what changed and add draw rects */
2295 /* if it just became visible or invisible */ 2295 /* if it just became visible or invisible */
2296 is_v = evas_object_is_visible(eo_obj, obj); 2296 is_v = evas_object_is_visible(obj);
2297 was_v = evas_object_was_visible(obj); 2297 was_v = evas_object_was_visible(obj);
2298 if (is_v != was_v) 2298 if (is_v != was_v)
2299 { 2299 {
@@ -3434,7 +3434,7 @@ _evas_object_image_video_overlay_hide(Evas_Object *eo_obj)
3434 o->delayed.video_hide = EINA_TRUE; 3434 o->delayed.video_hide = EINA_TRUE;
3435 o->delayed.video_show = EINA_FALSE; 3435 o->delayed.video_show = EINA_FALSE;
3436 } 3436 }
3437 if (evas_object_is_visible(eo_obj, obj)) 3437 if (evas_object_is_visible(obj))
3438 o->pixels->video.update_pixels(o->pixels->video.data, eo_obj, &o->pixels->video); 3438 o->pixels->video.update_pixels(o->pixels->video.data, eo_obj, &o->pixels->video);
3439 o->video_visible = EINA_FALSE; 3439 o->video_visible = EINA_FALSE;
3440 o->created = EINA_FALSE; 3440 o->created = EINA_FALSE;
diff --git a/src/lib/evas/canvas/evas_object_line.c b/src/lib/evas/canvas/evas_object_line.c
index 9a83f10c42..ee085dcc5b 100644
--- a/src/lib/evas/canvas/evas_object_line.c
+++ b/src/lib/evas/canvas/evas_object_line.c
@@ -274,7 +274,7 @@ evas_object_line_render_pre(Evas_Object *eo_obj,
274 } 274 }
275 /* now figure what changed and add draw rects */ 275 /* now figure what changed and add draw rects */
276 /* if it just became visible or invisible */ 276 /* if it just became visible or invisible */
277 is_v = evas_object_is_visible(eo_obj, obj); 277 is_v = evas_object_is_visible(obj);
278 was_v = evas_object_was_visible(obj); 278 was_v = evas_object_was_visible(obj);
279 if (is_v != was_v) 279 if (is_v != was_v)
280 { 280 {
diff --git a/src/lib/evas/canvas/evas_object_polygon.c b/src/lib/evas/canvas/evas_object_polygon.c
index 1aeadd9eae..f37b9f5b25 100644
--- a/src/lib/evas/canvas/evas_object_polygon.c
+++ b/src/lib/evas/canvas/evas_object_polygon.c
@@ -329,7 +329,7 @@ evas_object_polygon_render_pre(Evas_Object *eo_obj,
329 } 329 }
330 /* now figure what changed and add draw rects */ 330 /* now figure what changed and add draw rects */
331 /* if it just became visible or invisible */ 331 /* if it just became visible or invisible */
332 is_v = evas_object_is_visible(eo_obj, obj); 332 is_v = evas_object_is_visible(obj);
333 was_v = evas_object_was_visible(obj); 333 was_v = evas_object_was_visible(obj);
334 if (is_v != was_v) 334 if (is_v != was_v)
335 { 335 {
diff --git a/src/lib/evas/canvas/evas_object_rectangle.c b/src/lib/evas/canvas/evas_object_rectangle.c
index d5a6600c04..b2f1aae310 100644
--- a/src/lib/evas/canvas/evas_object_rectangle.c
+++ b/src/lib/evas/canvas/evas_object_rectangle.c
@@ -158,7 +158,7 @@ evas_object_rectangle_render_pre(Evas_Object *eo_obj,
158 } 158 }
159 /* now figure what changed and add draw rects */ 159 /* now figure what changed and add draw rects */
160 /* if it just became visible or invisible */ 160 /* if it just became visible or invisible */
161 is_v = evas_object_is_visible(eo_obj, obj); 161 is_v = evas_object_is_visible(obj);
162 was_v = evas_object_was_visible(obj); 162 was_v = evas_object_was_visible(obj);
163 if (!(is_v | was_v)) goto done; 163 if (!(is_v | was_v)) goto done;
164 if (is_v != was_v) 164 if (is_v != was_v)
@@ -203,7 +203,7 @@ evas_object_rectangle_render_pre(Evas_Object *eo_obj,
203 /* it obviously didn't change - add a NO obscure - this "unupdates" this */ 203 /* it obviously didn't change - add a NO obscure - this "unupdates" this */
204 /* area so if there were updates for it they get wiped. don't do it if we */ 204 /* area so if there were updates for it they get wiped. don't do it if we */
205 /* arent fully opaque and we are visible */ 205 /* arent fully opaque and we are visible */
206 if (evas_object_is_visible(eo_obj, obj) && 206 if (evas_object_is_visible(obj) &&
207 evas_object_is_opaque(eo_obj, obj) && 207 evas_object_is_opaque(eo_obj, obj) &&
208 (!obj->clip.clipees)) 208 (!obj->clip.clipees))
209 { 209 {
diff --git a/src/lib/evas/canvas/evas_object_text.c b/src/lib/evas/canvas/evas_object_text.c
index 0c20f3ee38..40277e2ef4 100644
--- a/src/lib/evas/canvas/evas_object_text.c
+++ b/src/lib/evas/canvas/evas_object_text.c
@@ -2077,7 +2077,7 @@ evas_object_text_render_pre(Evas_Object *eo_obj,
2077 } 2077 }
2078 /* now figure what changed and add draw rects 2078 /* now figure what changed and add draw rects
2079 if it just became visible or invisible */ 2079 if it just became visible or invisible */
2080 is_v = evas_object_is_visible(eo_obj, obj); 2080 is_v = evas_object_is_visible(obj);
2081 was_v = evas_object_was_visible(obj); 2081 was_v = evas_object_was_visible(obj);
2082 if (is_v != was_v) 2082 if (is_v != was_v)
2083 { 2083 {
diff --git a/src/lib/evas/canvas/evas_object_textblock.c b/src/lib/evas/canvas/evas_object_textblock.c
index d4921f9683..87dc57fa65 100644
--- a/src/lib/evas/canvas/evas_object_textblock.c
+++ b/src/lib/evas/canvas/evas_object_textblock.c
@@ -15041,7 +15041,7 @@ evas_object_textblock_render_pre(Evas_Object *eo_obj,
15041 o->redraw = 0; 15041 o->redraw = 0;
15042 evas_object_render_pre_prev_cur_add(&obj->layer->evas->clip_changes, 15042 evas_object_render_pre_prev_cur_add(&obj->layer->evas->clip_changes,
15043 eo_obj, obj); 15043 eo_obj, obj);
15044 is_v = evas_object_is_visible(eo_obj, obj); 15044 is_v = evas_object_is_visible(obj);
15045 was_v = evas_object_was_visible(obj); 15045 was_v = evas_object_was_visible(obj);
15046 goto done; 15046 goto done;
15047 } 15047 }
@@ -15051,7 +15051,7 @@ evas_object_textblock_render_pre(Evas_Object *eo_obj,
15051 o->redraw = 0; 15051 o->redraw = 0;
15052 evas_object_render_pre_prev_cur_add(&obj->layer->evas->clip_changes, 15052 evas_object_render_pre_prev_cur_add(&obj->layer->evas->clip_changes,
15053 eo_obj, obj); 15053 eo_obj, obj);
15054 is_v = evas_object_is_visible(eo_obj, obj); 15054 is_v = evas_object_is_visible(obj);
15055 was_v = evas_object_was_visible(obj); 15055 was_v = evas_object_was_visible(obj);
15056 goto done; 15056 goto done;
15057 } 15057 }
@@ -15061,13 +15061,13 @@ evas_object_textblock_render_pre(Evas_Object *eo_obj,
15061 o->redraw = 0; 15061 o->redraw = 0;
15062 evas_object_render_pre_prev_cur_add(&obj->layer->evas->clip_changes, 15062 evas_object_render_pre_prev_cur_add(&obj->layer->evas->clip_changes,
15063 eo_obj, obj); 15063 eo_obj, obj);
15064 is_v = evas_object_is_visible(eo_obj, obj); 15064 is_v = evas_object_is_visible(obj);
15065 was_v = evas_object_was_visible(obj); 15065 was_v = evas_object_was_visible(obj);
15066 goto done; 15066 goto done;
15067 } 15067 }
15068 /* now figure what changed and add draw rects */ 15068 /* now figure what changed and add draw rects */
15069 /* if it just became visible or invisible */ 15069 /* if it just became visible or invisible */
15070 is_v = evas_object_is_visible(eo_obj, obj); 15070 is_v = evas_object_is_visible(obj);
15071 was_v = evas_object_was_visible(obj); 15071 was_v = evas_object_was_visible(obj);
15072 if (is_v != was_v) 15072 if (is_v != was_v)
15073 { 15073 {
diff --git a/src/lib/evas/canvas/evas_object_textgrid.c b/src/lib/evas/canvas/evas_object_textgrid.c
index 854e829506..2b3b97c370 100644
--- a/src/lib/evas/canvas/evas_object_textgrid.c
+++ b/src/lib/evas/canvas/evas_object_textgrid.c
@@ -681,7 +681,7 @@ evas_object_textgrid_render_pre(Evas_Object *eo_obj,
681 } 681 }
682 /* now figure what changed and add draw rects */ 682 /* now figure what changed and add draw rects */
683 /* if it just became visible or invisible */ 683 /* if it just became visible or invisible */
684 is_v = evas_object_is_visible(eo_obj, obj); 684 is_v = evas_object_is_visible(obj);
685 was_v = evas_object_was_visible(obj); 685 was_v = evas_object_was_visible(obj);
686 if (is_v != was_v) 686 if (is_v != was_v)
687 { 687 {
diff --git a/src/lib/evas/canvas/evas_render.c b/src/lib/evas/canvas/evas_render.c
index f355bac9c2..ce3ed0f737 100644
--- a/src/lib/evas/canvas/evas_render.c
+++ b/src/lib/evas/canvas/evas_render.c
@@ -286,16 +286,16 @@ _evas_render_had_map(Evas_Object_Protected_Data *obj)
286} 286}
287 287
288static Eina_Bool 288static Eina_Bool
289_evas_render_is_relevant(Evas_Object *eo_obj, Evas_Object_Protected_Data *obj) 289_evas_render_is_relevant(Evas_Object_Protected_Data *obj)
290{ 290{
291 return ((evas_object_is_visible(eo_obj, obj) && (!obj->cur->have_clipees)) || 291 return ((evas_object_is_visible(obj) && (!obj->cur->have_clipees)) ||
292 (evas_object_was_visible(obj) && (!obj->prev->have_clipees))); 292 (evas_object_was_visible(obj) && (!obj->prev->have_clipees)));
293} 293}
294 294
295static Eina_Bool 295static Eina_Bool
296_evas_render_can_render(Evas_Object *eo_obj, Evas_Object_Protected_Data *obj) 296_evas_render_can_render(Evas_Object_Protected_Data *obj)
297{ 297{
298 return (evas_object_is_visible(eo_obj, obj) && (!obj->cur->have_clipees) && 298 return (evas_object_is_visible(obj) && (!obj->cur->have_clipees) &&
299 !obj->no_render); 299 !obj->no_render);
300} 300}
301 301
@@ -519,7 +519,7 @@ _evas_render_phase1_direct(Evas_Public_Data *e,
519 if (obj->is_smart) 519 if (obj->is_smart)
520 { 520 {
521 } 521 }
522 else if (evas_object_is_visible(eo_obj, obj) && 522 else if (evas_object_is_visible(obj) &&
523 ((obj->rect_del) || 523 ((obj->rect_del) ||
524 (evas_object_is_opaque(eo_obj, obj))) && 524 (evas_object_is_opaque(eo_obj, obj))) &&
525 (!evas_object_is_source_invisible(eo_obj, obj))) 525 (!evas_object_is_source_invisible(eo_obj, obj)))
@@ -789,7 +789,7 @@ _evas_render_phase1_object_mapped(Phase1_Context *p1ctx,
789 _evas_render_object_map_change_update(p1ctx->e, obj, EINA_TRUE, hmap, &(p1ctx->redraw_all)); 789 _evas_render_object_map_change_update(p1ctx->e, obj, EINA_TRUE, hmap, &(p1ctx->redraw_all));
790 if (!((is_active) && 790 if (!((is_active) &&
791 (!obj->clip.clipees) && 791 (!obj->clip.clipees) &&
792 ((evas_object_is_visible(eo_obj, obj) && 792 ((evas_object_is_visible(obj) &&
793 (!obj->cur->have_clipees)) || 793 (!obj->cur->have_clipees)) ||
794 (evas_object_was_visible(obj) && 794 (evas_object_was_visible(obj) &&
795 (!obj->prev->have_clipees))))) 795 (!obj->prev->have_clipees)))))
@@ -923,9 +923,7 @@ _evas_render_phase1_object_changed_normal(Phase1_Context *p1ctx,
923#endif 923#endif
924 ) 924 )
925{ 925{
926 Evas_Object *eo_obj = obj->object; 926 if ((!obj->clip.clipees) && _evas_render_is_relevant(obj))
927
928 if ((!obj->clip.clipees) && _evas_render_is_relevant(eo_obj, obj))
929 { 927 {
930 if (EINA_LIKELY(is_active)) 928 if (EINA_LIKELY(is_active))
931 { 929 {
@@ -942,7 +940,7 @@ _evas_render_phase1_object_changed_normal(Phase1_Context *p1ctx,
942 { 940 {
943 /* It goes to be hidden. Prev caching should be replaced 941 /* It goes to be hidden. Prev caching should be replaced
944 by the current (hidden) state. */ 942 by the current (hidden) state. */
945 if (evas_object_is_visible(eo_obj, obj) != 943 if (evas_object_is_visible(obj) !=
946 evas_object_was_visible(obj)) 944 evas_object_was_visible(obj))
947 evas_object_cur_prev(obj); 945 evas_object_cur_prev(obj);
948 RD(level, " skip - not smart, not active or clippees or not relevant\n"); 946 RD(level, " skip - not smart, not active or clippees or not relevant\n");
@@ -1035,13 +1033,13 @@ _evas_render_phase1_object_no_changed_normal(Phase1_Context *p1ctx,
1035 Evas_Object *eo_obj = obj->object; 1033 Evas_Object *eo_obj = obj->object;
1036 1034
1037 if (evas_object_is_opaque(eo_obj, obj) && 1035 if (evas_object_is_opaque(eo_obj, obj) &&
1038 evas_object_is_visible(eo_obj, obj)) 1036 evas_object_is_visible(obj))
1039 { 1037 {
1040 RD(level, " opaque + visible\n"); 1038 RD(level, " opaque + visible\n");
1041 OBJ_ARRAY_PUSH(p1ctx->render_objects, obj); 1039 OBJ_ARRAY_PUSH(p1ctx->render_objects, obj);
1042 obj->rect_del = EINA_TRUE; 1040 obj->rect_del = EINA_TRUE;
1043 } 1041 }
1044 else if (evas_object_is_visible(eo_obj, obj)) 1042 else if (evas_object_is_visible(obj))
1045 { 1043 {
1046 RD(level, " visible\n"); 1044 RD(level, " visible\n");
1047 OBJ_ARRAY_PUSH(p1ctx->render_objects, obj); 1045 OBJ_ARRAY_PUSH(p1ctx->render_objects, obj);
@@ -1122,7 +1120,7 @@ _evas_render_phase1_object_process(Phase1_Context *p1ctx,
1122 eina_inarray_push(p1ctx->active_objects, &ent); 1120 eina_inarray_push(p1ctx->active_objects, &ent);
1123 } 1121 }
1124 if (is_active && obj->cur->snapshot && !obj->delete_me && 1122 if (is_active && obj->cur->snapshot && !obj->delete_me &&
1125 evas_object_is_visible(eo_obj, obj)) 1123 evas_object_is_visible(obj))
1126 { 1124 {
1127 // FIXME: Array should be clean (no need to check if already in there) 1125 // FIXME: Array should be clean (no need to check if already in there)
1128 int found = 0; 1126 int found = 0;
@@ -1180,12 +1178,12 @@ _evas_render_phase1_object_process(Phase1_Context *p1ctx,
1180 { 1178 {
1181 /* not changed */ 1179 /* not changed */
1182 RD(level, " not changed... [%i] -> (%i %i %p %i) [%i]\n", 1180 RD(level, " not changed... [%i] -> (%i %i %p %i) [%i]\n",
1183 evas_object_is_visible(eo_obj, obj), 1181 evas_object_is_visible(obj),
1184 obj->cur->visible, obj->cur->cache.clip.visible, obj->smart.smart, 1182 obj->cur->visible, obj->cur->cache.clip.visible, obj->smart.smart,
1185 obj->cur->cache.clip.a, evas_object_was_visible(obj)); 1183 obj->cur->cache.clip.a, evas_object_was_visible(obj));
1186 if ((!obj->clip.clipees) && 1184 if ((!obj->clip.clipees) &&
1187 (EINA_LIKELY(obj->delete_me == 0)) && 1185 (EINA_LIKELY(obj->delete_me == 0)) &&
1188 (_evas_render_can_render(eo_obj, obj) || 1186 (_evas_render_can_render(obj) ||
1189 (evas_object_was_visible(obj) && 1187 (evas_object_was_visible(obj) &&
1190 (!obj->prev->have_clipees)))) 1188 (!obj->prev->have_clipees))))
1191 { 1189 {
@@ -1294,7 +1292,7 @@ _evas_render_check_pending_objects(Eina_Array *pending_objects, Evas *eo_e EINA_
1294 } 1292 }
1295 else 1293 else
1296 if ((is_active) && (obj->restack) && (!obj->clip.clipees) && 1294 if ((is_active) && (obj->restack) && (!obj->clip.clipees) &&
1297 (_evas_render_can_render(eo_obj, obj) || 1295 (_evas_render_can_render(obj) ||
1298 (evas_object_was_visible(obj) && (!obj->prev->have_clipees)))) 1296 (evas_object_was_visible(obj) && (!obj->prev->have_clipees))))
1299 { 1297 {
1300 if (!obj->render_pre && !obj->rect_del && !obj->delete_me) 1298 if (!obj->render_pre && !obj->rect_del && !obj->delete_me)
@@ -1302,7 +1300,7 @@ _evas_render_check_pending_objects(Eina_Array *pending_objects, Evas *eo_e EINA_
1302 } 1300 }
1303 else 1301 else
1304 if (is_active && (!obj->clip.clipees) && 1302 if (is_active && (!obj->clip.clipees) &&
1305 (_evas_render_can_render(eo_obj, obj) || 1303 (_evas_render_can_render(obj) ||
1306 (evas_object_was_visible(obj) && (!obj->prev->have_clipees)))) 1304 (evas_object_was_visible(obj) && (!obj->prev->have_clipees))))
1307 { 1305 {
1308 if (obj->render_pre || obj->rect_del) ok = EINA_TRUE; 1306 if (obj->render_pre || obj->rect_del) ok = EINA_TRUE;
@@ -1312,7 +1310,7 @@ _evas_render_check_pending_objects(Eina_Array *pending_objects, Evas *eo_e EINA_
1312 { 1310 {
1313 if ((!obj->clip.clipees) && (obj->delete_me == 0) && 1311 if ((!obj->clip.clipees) && (obj->delete_me == 0) &&
1314 (!obj->cur->have_clipees || (evas_object_was_visible(obj) && (!obj->prev->have_clipees))) 1312 (!obj->cur->have_clipees || (evas_object_was_visible(obj) && (!obj->prev->have_clipees)))
1315 && evas_object_is_opaque(eo_obj, obj) && evas_object_is_visible(eo_obj, obj)) 1313 && evas_object_is_opaque(eo_obj, obj) && evas_object_is_visible(obj))
1316 { 1314 {
1317 if (obj->rect_del || obj->is_smart) ok = EINA_TRUE; 1315 if (obj->rect_del || obj->is_smart) ok = EINA_TRUE;
1318 } 1316 }
@@ -1348,7 +1346,7 @@ pending_change(void *data, void *gdata EINA_UNUSED)
1348 obj->func->render_post(eo_obj, obj, obj->private_data); 1346 obj->func->render_post(eo_obj, obj, obj->private_data);
1349 obj->pre_render_done = EINA_FALSE; 1347 obj->pre_render_done = EINA_FALSE;
1350 } 1348 }
1351 else if (!_evas_render_can_render(eo_obj, obj) && 1349 else if (!_evas_render_can_render(obj) &&
1352 (!obj->is_active) && (!obj->render_pre) && 1350 (!obj->is_active) && (!obj->render_pre) &&
1353 (!obj->rect_del)) 1351 (!obj->rect_del))
1354 { 1352 {
@@ -1399,7 +1397,7 @@ _evas_render_can_use_overlay(Evas_Public_Data *e, Evas_Object *eo_obj, Efl_Canva
1399 if (tmp && _evas_render_has_map(tmp) && !_evas_render_can_map(tmp)) 1397 if (tmp && _evas_render_has_map(tmp) && !_evas_render_can_map(tmp))
1400 return EINA_FALSE; /* we are mapped, we can't be an overlay */ 1398 return EINA_FALSE; /* we are mapped, we can't be an overlay */
1401 1399
1402 if (!evas_object_is_visible(eo_obj, obj)) 1400 if (!evas_object_is_visible(obj))
1403 return EINA_FALSE; /* no need to update the overlay if it's not visible */ 1401 return EINA_FALSE; /* no need to update the overlay if it's not visible */
1404 1402
1405 /* If any recoloring of the surface is needed, n overlay to */ 1403 /* If any recoloring of the surface is needed, n overlay to */
@@ -1502,7 +1500,7 @@ _evas_render_can_use_overlay(Evas_Public_Data *e, Evas_Object *eo_obj, Efl_Canva
1502 xc2 = current->cur->cache.clip.x + current->cur->cache.clip.w; 1500 xc2 = current->cur->cache.clip.x + current->cur->cache.clip.w;
1503 yc2 = current->cur->cache.clip.y + current->cur->cache.clip.h; 1501 yc2 = current->cur->cache.clip.y + current->cur->cache.clip.h;
1504 1502
1505 if (evas_object_is_visible(eo_current, current) && 1503 if (evas_object_is_visible(current) &&
1506 (!current->clip.clipees) && 1504 (!current->clip.clipees) &&
1507 (current->cur->visible) && 1505 (current->cur->visible) &&
1508 (!current->delete_me) && 1506 (!current->delete_me) &&
@@ -1846,12 +1844,12 @@ evas_render_mapped(Evas_Public_Data *evas, Evas_Object *eo_obj,
1846 { 1844 {
1847 if (!evas->is_frozen) /* same as "if (proxy_render_data)" */ 1845 if (!evas->is_frozen) /* same as "if (proxy_render_data)" */
1848 { 1846 {
1849 if ((!evas_object_is_visible(eo_obj, obj)) || (obj->clip.clipees) 1847 if ((!evas_object_is_visible(obj)) || (obj->clip.clipees)
1850 || (obj->cur->have_clipees) || (obj->no_render)) 1848 || (obj->cur->have_clipees) || (obj->no_render))
1851 { 1849 {
1852 IFRD(obj->no_render, level, " no_render\n"); 1850 IFRD(obj->no_render, level, " no_render\n");
1853 IFRD(obj->clip.clipees || obj->cur->have_clipees, level, " has clippees\n"); 1851 IFRD(obj->clip.clipees || obj->cur->have_clipees, level, " has clippees\n");
1854 IFRD(!evas_object_is_visible(eo_obj, obj), level, " not visible\n"); 1852 IFRD(!evas_object_is_visible(obj), level, " not visible\n");
1855 RD(level, "}\n"); 1853 RD(level, "}\n");
1856 eina_evlog("-render_object", eo_obj, 0.0, NULL); 1854 eina_evlog("-render_object", eo_obj, 0.0, NULL);
1857 return EINA_FALSE; 1855 return EINA_FALSE;
@@ -1899,11 +1897,11 @@ evas_render_mapped(Evas_Public_Data *evas, Evas_Object *eo_obj,
1899 } 1897 }
1900 } 1898 }
1901 else if (!(((evas_object_is_active(eo_obj, obj) && (!obj->clip.clipees) && 1899 else if (!(((evas_object_is_active(eo_obj, obj) && (!obj->clip.clipees) &&
1902 (_evas_render_can_render(eo_obj, obj)))) 1900 (_evas_render_can_render(obj))))
1903 )) 1901 ))
1904 { 1902 {
1905 IFRD(!evas_object_is_active(eo_obj, obj), level, " not active\n"); 1903 IFRD(!evas_object_is_active(eo_obj, obj), level, " not active\n");
1906 IFRD(!_evas_render_can_render(eo_obj, obj), level, " can't render\n"); 1904 IFRD(!_evas_render_can_render(obj), level, " can't render\n");
1907 IFRD(obj->clip.clipees, level, " has clippees\n"); 1905 IFRD(obj->clip.clipees, level, " has clippees\n");
1908 RD(level, "}\n"); 1906 RD(level, "}\n");
1909 eina_evlog("-render_object", eo_obj, 0.0, NULL); 1907 eina_evlog("-render_object", eo_obj, 0.0, NULL);
@@ -2758,7 +2756,7 @@ _snapshot_redraw_update(Evas_Public_Data *evas, Evas_Object_Protected_Data *snap
2758 // FIXME: Tiler should be inside snapshot data 2756 // FIXME: Tiler should be inside snapshot data
2759 // TODO: Also list redraw regions (partial updates) 2757 // TODO: Also list redraw regions (partial updates)
2760 2758
2761 if (!evas_object_is_visible(snap->object, snap)) return; 2759 if (!evas_object_is_visible(snap)) return;
2762 2760
2763 evas_object_clip_recalc(snap); 2761 evas_object_clip_recalc(snap);
2764 snap_clip.x = snap->cur->cache.clip.x - x; 2762 snap_clip.x = snap->cur->cache.clip.x - x;
@@ -3123,7 +3121,7 @@ _evas_planes(Evas_Public_Data *evas)
3123 break; 3121 break;
3124 } 3122 }
3125 3123
3126 if (evas_object_is_visible(eo_obj2, obj2)) 3124 if (evas_object_is_visible(obj2))
3127 EINA_LIST_FOREACH(evas->outputs, lo, output) 3125 EINA_LIST_FOREACH(evas->outputs, lo, output)
3128 { 3126 {
3129 /* A video object can only be in one output at a time, check that first */ 3127 /* A video object can only be in one output at a time, check that first */
@@ -3331,7 +3329,7 @@ evas_render_updates_internal(Evas *eo_e,
3331 (evas_object_is_opaque(eo_obj, obj) || obj->cur->snapshot || 3329 (evas_object_is_opaque(eo_obj, obj) || obj->cur->snapshot ||
3332 ((obj->func->has_opaque_rect) && 3330 ((obj->func->has_opaque_rect) &&
3333 (obj->func->has_opaque_rect(eo_obj, obj, obj->private_data)))) && 3331 (obj->func->has_opaque_rect(eo_obj, obj, obj->private_data)))) &&
3334 evas_object_is_visible(eo_obj, obj) && 3332 evas_object_is_visible(obj) &&
3335 (!obj->mask->is_mask) && (!obj->clip.mask) && 3333 (!obj->mask->is_mask) && (!obj->clip.mask) &&
3336 (!obj->delete_me))) 3334 (!obj->delete_me)))
3337 OBJ_ARRAY_PUSH(&e->obscuring_objects, obj); 3335 OBJ_ARRAY_PUSH(&e->obscuring_objects, obj);
diff --git a/src/lib/evas/include/evas_inline.x b/src/lib/evas/include/evas_inline.x
index 7c337b3f2e..ad6fca2dbb 100644
--- a/src/lib/evas/include/evas_inline.x
+++ b/src/lib/evas/include/evas_inline.x
@@ -178,7 +178,7 @@ evas_object_is_source_invisible(Evas_Object *eo_obj EINA_UNUSED, Evas_Object_Pro
178} 178}
179 179
180static inline int 180static inline int
181evas_object_is_visible(Evas_Object *eo_obj, Evas_Object_Protected_Data *obj) 181evas_object_is_visible(Evas_Object_Protected_Data *obj)
182{ 182{
183 if (EINA_UNLIKELY(!obj->cur)) return 0; 183 if (EINA_UNLIKELY(!obj->cur)) return 0;
184 if ((obj->cur->visible) && (!obj->no_render) && 184 if ((obj->cur->visible) && (!obj->no_render) &&
@@ -187,7 +187,7 @@ evas_object_is_visible(Evas_Object *eo_obj, Evas_Object_Protected_Data *obj)
187 || obj->cur->render_op != EVAS_RENDER_BLEND)) 187 || obj->cur->render_op != EVAS_RENDER_BLEND))
188 { 188 {
189 if (obj->func->is_visible) 189 if (obj->func->is_visible)
190 return obj->func->is_visible(eo_obj); 190 return obj->func->is_visible(obj->object);
191 return 1; 191 return 1;
192 } 192 }
193 return 0; 193 return 0;
@@ -240,7 +240,7 @@ evas_object_is_in_output_rect(Evas_Object *eo_obj EINA_UNUSED, Evas_Object_Prote
240static inline int 240static inline int
241evas_object_is_active(Evas_Object *eo_obj, Evas_Object_Protected_Data *obj) 241evas_object_is_active(Evas_Object *eo_obj, Evas_Object_Protected_Data *obj)
242{ 242{
243 if (evas_object_is_visible(eo_obj, obj) || evas_object_was_visible(obj)) 243 if (evas_object_is_visible(obj) || evas_object_was_visible(obj))
244 { 244 {
245 Evas_Public_Data *e = obj->layer->evas; 245 Evas_Public_Data *e = obj->layer->evas;
246 int fx, fy; 246 int fx, fy;