discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=7bc59d01fed8b715a08ee7d6209cd8723d7a3241
commit 7bc59d01fed8b715a08ee7d6209cd8723d7a3241 Author: Mike Blumenkrantz <zm...@samsung.com> Date: Fri May 30 11:22:21 2014 -0400 slightly optimize shape cutting objects below the bottom client are unnecessary, so it's better to just start with the bottom client. this has a nice side effect of working around a weird evas bug where layers can exist while having no objects, breaking stacking iterator functions --- src/bin/e_comp.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/bin/e_comp.c b/src/bin/e_comp.c index 31d24c2..d0723b3 100644 --- a/src/bin/e_comp.c +++ b/src/bin/e_comp.c @@ -681,7 +681,8 @@ _e_comp_shapes_update_job(E_Comp *c) eina_tiler_tile_size_set(tb, 1, 1); /* background */ eina_tiler_rect_add(tb, &(Eina_Rectangle){c->man->x, c->man->y, c->man->w, c->man->h}); - o = evas_object_bottom_get(c->evas); + + o = e_client_bottom_get(c)->frame; for (; o; o = evas_object_above_get(o)) { int layer; @@ -690,9 +691,8 @@ _e_comp_shapes_update_job(E_Comp *c) layer = evas_object_layer_get(o); if (e_comp_canvas_client_layer_map(layer) == 9999) //not a client layer { - /* ignore objects stacked below first client layer */ - if (layer < E_LAYER_CLIENT_PRIO) continue; _e_comp_shapes_update_object_shape_comp_helper(c, o, tb); + continue; } ec = evas_object_data_get(o, "E_Client"); if (ec && (!ec->no_shape_cut)) --